Skip to content

Skill: Inv #1b typed-data tree decode + canonical-spender table still gap; A.3 Permit collude lands #579

Description

@szhygulin

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    security_findingSecurity gap surfaced via adversarial smoke-test

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions