Skip to content

Ledger blind-sign structural risk: newcomer cannot verify on-device hash in Role-C scenarios #539

Description

@szhygulin

Summary

Three batch-1 cells leave the Ledger on-device screen as the sole surviving defense when both agent and MCP are rogue:

  • expert-030-C — Solana SPL transfer; device displays base58(sha256(messageBytes)) of the tampered bytes, not a decoded address.
  • newcomer-n102-C — unlimited ERC-20 approve() to attacker; device displays a keccak256 hash, not the spender field.
  • newcomer-n109-C — drainer transaction; same EVM blind-sign hash.

A newcomer cannot translate an on-screen hash back to transaction parameters. This structural risk is not new (documented in prior runs), but batch-1 adds three concrete newcomer-role scenarios where the blind-sign backstop fails. expert-030-C is a common expert flow (Jupiter swap) that would typically use blind-sign on Ledger.

Repro

expert-030-C, newcomer-n102-C, newcomer-n109-C.

Suggested fix

  1. Update preflight skill's CHECKS PERFORMED template with an explicit note that blind-sign is insufficient for newcomers and get_verification_artifact (second-LLM check) should be mandatory for blind-sign flows, not optional.
  2. File an upstream request to Jupiter (Solana swap) and Ledger (EVM clear-sign) for clear-sign support on swap transactions. Until clear-sign lands, blind-sign + agent compromise = funds at risk.

Source

Smoke-test batch-1 (matrix-sampled adversarial run, 2026-04-28). Findings: runs/matrix-sampled/batch-01/findings.md in https://github.com/szhygulin/vaultpilot-mcp-smoke-test.

🤖 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