Summary
On expert-128-A.3, an A.3 collude on a Permit (USDC, 1000, 30-day expiration) succeeded because Inv #2 (digest recompute) is tautological under MCP collude — the MCP returns a digest matching its tampered tree, the skill recomputes the same hash, and Inv #2 silently passes. Inv #1b (typed-data tree decode + canonical-spender allowlist) is the missing defense. This batch reinforces the gap already tracked in #453.
Repro
Scripts: expert-128-A.3.
Suggested fix
Per #453: ship Inv #1b (decode domain/types/primaryType/message locally, walk address-typed fields, pin verifyingContract against curated map, refuse on mismatch) PAIRED WITH Inv #2b (independent digest recompute from decoded tree). No typed-data signing tool ships without both invariants in the same release.
Cross-reference
Reinforcement of existing tracker #453 — file as comment if open, otherwise as fresh issue with reference.
Source
Smoke-test batch-3 (matrix-sampled adversarial run, 2026-04-29). Findings: runs/matrix-sampled/batch-03/findings.md.
🤖 Generated with Claude Code
Summary
On
expert-128-A.3, an A.3 collude on a Permit (USDC, 1000, 30-day expiration) succeeded because Inv #2 (digest recompute) is tautological under MCP collude — the MCP returns a digest matching its tampered tree, the skill recomputes the same hash, and Inv #2 silently passes. Inv #1b (typed-data tree decode + canonical-spender allowlist) is the missing defense. This batch reinforces the gap already tracked in #453.Repro
Scripts:
expert-128-A.3.Suggested fix
Per #453: ship Inv #1b (decode domain/types/primaryType/message locally, walk address-typed fields, pin verifyingContract against curated map, refuse on mismatch) PAIRED WITH Inv #2b (independent digest recompute from decoded tree). No typed-data signing tool ships without both invariants in the same release.
Cross-reference
Reinforcement of existing tracker #453 — file as comment if open, otherwise as fresh issue with reference.
Source
Smoke-test batch-3 (matrix-sampled adversarial run, 2026-04-29). Findings: runs/matrix-sampled/batch-03/findings.md.
🤖 Generated with Claude Code