You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(security): bind signing authorities; disclose EOS permissions; fail early
Bind the authority to the key that signs:
- thorchain, mayachain: MsgDeposit's `signer` must be the account this session
derives, not merely a well-formed address on the right network. It is
serialized verbatim as the message authority, and the confirmation labels it
as though it were a destination, so a valid-but-foreign signer produced a
signed document the device cannot authorize and the screen did not give it
away.
- binance: a transfer's input is its authority and no screen displays it, so
network-correctness was not enough. It is now required to equal the session
address. The output stays a plain address check -- it is the recipient, and
it is shown.
Disclose what is signed:
- eos: show every actor@permission on an unknown action. The authorization
list is compared across chunks and hashed into the preimage, but the
approval named only the contract, action, byte count and data fingerprint --
omitting the one part of an opaque action that says how much it may do.
Fail before approval:
- thortx: resolve the asset, render the amount and validate the expiry before
the first screen. They ran after the router, vault and asset screens, and
ethereum.c reports a late false return as ActionCancelled -- so a large but
valid amount told the owner they had cancelled what they had just approved.
- saproxy: format both values before either screen, for the same reason.
Don't leave a cancelled screen up:
- Cancel and ClearSession now call layoutHome() after aborting. The Binance,
Tendermint, Osmosis, THORChain, MAYAChain, EOS and Nano abort routines only
clear state, so the cancelled transaction's approval screen stayed on the
OLED. Placed at these two call sites rather than inside
fsm_abort_workflows(), which toggle_screensaver() also calls immediately
before drawing the screensaver.
0 commit comments