Attack lab
The live demo issues a pass for 'docs:read' and 'search:query', then asks for the permission you type. Six real runs:
4 attacks 2 controls live: nothing pre-recorded
- Pick a preset. Red ones are attacks, green ones are honest requests that must still work.
- Tamper. Choose any field and drop it, null it, change its type, upper-case it, flip one character, or add a field the product never asked for.
- Send and read the real reply, or run every preset and watch the scoreboard fill.
What each preset tests
| Preset | Route | Why it matters | |
|---|---|---|---|
| control | Ask for search:query (on the pass) | POST /catalog-demo/agent-id/run | Listed on the pass, so it is accepted. |
| control | Ask for docs:read (on the pass) | POST /catalog-demo/agent-id/run | Also listed: accepted. |
| attack | Ask for billing:refund | POST /catalog-demo/agent-id/run | Not on the pass: refused, even though the pass itself is genuine. |
| attack | Ask for docs:write (a close cousin of docs:read) | POST /catalog-demo/agent-id/run | Read does not imply write. |
| attack | Ask for admin:* (a wildcard) | POST /catalog-demo/agent-id/run | Wildcards are not granted by asking. |
| attack | Ask for two permissions glued together | POST /catalog-demo/agent-id/run | A made-up combined permission is not on the pass. |
Each button issues a fresh pass and checks it on the live service. Shared demo; rate limited per address.
FIRME AI CORPORATION · CAIN-42 is a Byzantine trust fabric. Numbers marked "our own check" were run by us, not by an independent party. Nothing on these pages is a certification.