AI-generated analysisPublished automatically and not human-verified. Validated context appears in community notes below.
← Watch feed
High 74 Bitcoin

fix(core): hardening ETH unstake and claim

Public commit record

What the developer wrote

Authored by obrusvit

92/100 · Strong
fix(core): hardening ETH unstake and claim

- unlike stake, the value of unstake and claim is supplied as a contract
arg. Even though the contracts are non-payable, we must enforce
`msg.value` to be 0
- in addition, enforce the right chain_id to prevent replay attacks

(cherry picked from commit 31323e62fbae7bb7b9ccc17a236e97cd8efeb91a)
✓ Descriptive subject✓ Names a concrete action or component✓ Uses a recognizable type or scope✓ Provides detailed explanatory context✓ Explains rationale or failure mode
The short version

What changed, and why it matters

This update tightens the rules for two Ethereum staking operations—unstake and claim—on Trezor hardware wallets. Before the fix, the device did not verify that the user was on the correct Ethereum network (chain ID) and did not block ETH from being attached to unstake/claim transactions. Because those contract functions reject incoming ETH, any ETH sent with them would normally be lost. The patch now rejects such transactions before they can be signed, preventing accidental or malicious loss of funds and cross-chain replay attacks.

Recommended action

Treat this as a security fix and include it in the next firmware release. Users should upgrade once available. Wallet software interacting with Trezor should ensure it does not construct unstake/claim transactions with non-zero value or wrong chain_id, as the device will now reject them.

Security signals we found

01

Validation bypass: address-only matching allowed staking-specific UI/approval logic to trigger on the wrong chain

02

Replay-attack vector: missing chain_id binding could let a staking transaction be replayed on another supported network

03

Fund-loss vector: non-payable unstake/claim calls accepted msg.value, which would be trapped by the contract

04

Negative test coverage added for value and trailing-data cases

05

Changelog entry explicitly labels the change as security-relevant

Risk score

Why this scored 74/100

Our methodology →
Potential impact 22/30
Exploitability 16/25
Stealth signal 10/15
Affected reach 12/15
Confidence 9/10
Evidence quality 5/5
Human-validated context

Community notes

Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.

No validated notes yet.

The AI analysis stands alone for now. Submit a note if you can add evidence or important context.