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

fix(legacy): hardening ETH unstake and claim

Public commit record

What the developer wrote

Authored by obrusvit

92/100 · Strong
fix(legacy): 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 f0cd25f93bde76a0f71d0b47ec1907484b0abeba)
✓ 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 fixes a security flaw in Trezor's older hardware wallet firmware for Ethereum staking operations. Previously, when a user tried to 'unstake' or 'claim' staked ETH, the device did not reliably block ETH from being sent along with the transaction (msg.value), even though those smart-contract functions are not supposed to accept money. It also did not strictly check that the transaction was on the correct Ethereum network (chain ID), which could have allowed a malicious or accidental transaction on one network to be replayed on another. The fix enforces zero ETH value for unstake/claim and ties each allowed contract address to its proper network.

Recommended action

Users of affected Trezor Model One firmware should upgrade to a release containing this commit. Developers should review whether similar chain_id and msg.value checks are present in other firmware variants (e.g., core) and add regression tests for all non-payable contract interactions.

Security signals we found

01

Missing chain_id enforcement on contract-address allowlist (replay-risk)

02

Non-payable unstake/claim paths did not enforce msg.value == 0

03

Staking transactions with trailing calldata accepted

04

Changelog fragment labels the change as security-relevant

Risk score

Why this scored 70/100

Our methodology →
Potential impact 22/30
Exploitability 16/25
Stealth signal 10/15
Affected reach 10/15
Confidence 8/10
Evidence quality 4/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.