Review and evidence
All analysis pages
Loading…
Every decision of the deterministic policy engine, stored before anything is acted on: ALLOW (the dry-run gateway may proceed), WARN (a human must approve), BLOCK (nothing happens). All 12 checks run every time.
Open a row for the 12 checks. Each verdict is replayable from its row: pnpm audit:replay recomputes it on the stored input and must give the same answer.
| Evaluated | Source | Action | Value | Verdict | Failed checks | Policy version | Snapshot |
|---|
FIXTURE: synthetic attack input, not market or chain data. Hand-written malicious inputs run through the real defences by pnpm demo:attack; log docs/evidence/demo-attack.log.jsonl (deterministic, checked by a test). Two legitimate controls must pass the same defences.
| Case | What it tries | Stopped by | Result | Failed | Signed / sent |
|---|---|---|---|---|---|
| Fixture control-repay | Legitimate $40 USDt repayment to Burrow, exactly the shape the Burrow builder produces | policy engine (12 checks) | ✓control: allowed | — | 0 / 0 |
| Fixture control-swap | Legitimate $30 wNEAR->USDC swap at a fair quote | policy engine (12 checks) | ✓control: allowed | — | 0 / 0 |
| Fixture prompt-injection-transfer | LLM output obeying an injected "SYSTEM OVERRIDE": a transfer of 500 USDt to attacker.near, with receiver and signer fields | agent-output parser (schema, capabilities, forbidden fields) | ✓discarded | FORBIDDEN_FIELD, SCHEMA | 0 / 0 |
| Fixture prompt-injection-impersonation | LLM output in the guardian slot claiming to be the capital allocator, to gain the swap capability | agent-output parser (schema, capabilities, forbidden fields) | ✓discarded | WRONG_AGENT | 0 / 0 |
| Fixture foreign-recipient | The repayment plan sends the 40 USDt to attacker.near instead of Burrow |
| policy engine (12 checks) |
| ✓blocked |
| action_shape |
| 0 / 0 |
| Fixture extra-withdraw | The repayment message also carries a Withdraw of 120 wNEAR collateral (executed by Burrow, not by the token) | policy engine (12 checks) | ✓blocked | intent_match | 0 / 0 |
| Fixture stale-price | Oracle prices 10 minutes old (limit 180s): the valuation could be anything by now | policy engine (12 checks) | ✓blocked | price_freshness | 0 / 0 |
| Fixture thin-pool | A $30 swap through a near-empty pool that pays $18 (40% below the oracle) | policy engine (12 checks) | ✓blocked | oracle_deviation | 0 / 0 |
| Fixture forged-approval | A hand-built approval for the ALLOWed repayment (stored verdict and hash both match), not minted by the policy engine | Shadow Gateway (stored verdict, then approval authenticity) | ✓refused | refused | 0 / 0 |
| Fixture full-access-key | A genuine approval of the ALLOWed repayment, handed to the live executor whose key is a full-access key | live executor key guard (view_access_key permission, checked before signing) | ✓refused | FULL_ACCESS_KEY_REFUSED | 0 / 0 |