CVE-2025-53359: ethereum does not check transaction malleability for EIP-2930, EIP-1559 and EIP-7702 transactions
6.9
Basic Information
Technical Details
Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
---|---|---|---|
ethereum | rust | < 0.18.0 | 0.18.0 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability lies in the fact that the ethereum
crate did not check for signature malleability for EIP-2930, EIP-1559, and EIP-7702 transactions. This means that an attacker could potentially modify the signature of a transaction without invalidating it, which could lead to unexpected behavior in systems that rely on transaction hash uniqueness.
The patch addresses this by introducing a new TransactionSignature
struct that validates the r
and s
components of a signature to ensure they are within the valid range as defined by EIP-2. This validation is performed in the TransactionSignature::new
function.
The vulnerable functions are the decode
implementations for EIP1559Transaction
, EIP2930Transaction
, and EIP7702Transaction
, as well as the authorizing_address
function for AuthorizationListItem
in the EIP-7702 implementation. These functions were modified to use the new TransactionSignature
struct and its validation logic, thus fixing the vulnerability. Any runtime profiler would show these functions being called when processing the affected transaction types.