Summary
Several Solana Stake Program instructions remain on the verified clear-sign path while the device omits the stake/vote/source/destination account identities parsed from the signed message:
- DelegateStake parses the stake account (
pi->from) and vote account (pi->to) but displays only Delegate stake?.
- Split parses source stake account (
pi->from) and destination split account (pi->to) but displays only the amount.
- Deactivate parses the stake account (
pi->from) but displays only generic action text.
- Merge parses destination (
pi->to) and source (pi->from) stake accounts but displays only Merge stake accounts?.
This is present on current alpha and is not covered by PR #557. It was found while independently reviewing that PR's Solana clear-sign changes.
Security impact
A compromised host can change the account(s) acted upon while preserving an identical device prompt. In particular, delegation to a different validator vote account and merging/splitting different stake accounts are not distinguishable to the user at approval time.
Code evidence
lib/firmware/solana.c fills pi->from/pi->to for these instruction types. lib/firmware/fsm_msg_solana.h renders generic prompts for SOL_INSTR_STAKE_DELEGATE, SOL_INSTR_STAKE_SPLIT, SOL_INSTR_STAKE_DEACTIVATE, and SOL_INSTR_STAKE_MERGE without those fields.
Acceptance criteria
- Display all security-relevant source/destination/vote/stake accounts before approval, or downgrade these instructions to opaque/Advanced Mode until complete screens exist.
- Add parser/review regression tests proving each signed identity is rendered or the instruction fails closed.
- Preserve existing signer-in-transaction verification.
Summary
Several Solana Stake Program instructions remain on the verified clear-sign path while the device omits the stake/vote/source/destination account identities parsed from the signed message:
pi->from) and vote account (pi->to) but displays onlyDelegate stake?.pi->from) and destination split account (pi->to) but displays only the amount.pi->from) but displays only generic action text.pi->to) and source (pi->from) stake accounts but displays onlyMerge stake accounts?.This is present on current
alphaand is not covered by PR #557. It was found while independently reviewing that PR's Solana clear-sign changes.Security impact
A compromised host can change the account(s) acted upon while preserving an identical device prompt. In particular, delegation to a different validator vote account and merging/splitting different stake accounts are not distinguishable to the user at approval time.
Code evidence
lib/firmware/solana.cfillspi->from/pi->tofor these instruction types.lib/firmware/fsm_msg_solana.hrenders generic prompts forSOL_INSTR_STAKE_DELEGATE,SOL_INSTR_STAKE_SPLIT,SOL_INSTR_STAKE_DEACTIVATE, andSOL_INSTR_STAKE_MERGEwithout those fields.Acceptance criteria