The meta-transaction system in NativeMetaTransaction.sol is vulnerable to signature malleability attacks. The verify function accepts multiple equivalent forms of the same signature, allowing an attacker to replay transactions with modified signature values. Unlike the previously reported ecrecover issue, this specifically impacts the protocol's nonce-based replay protection because each signature variation is treated as unique, despite representing the same transaction. This enables bypassing the nonce check and executing the same transaction multiple times.
The vulnerability exists in the signature verification:
https://github.com/Cyfrin/2024-11-one-world/blob/1e872c7ab393c380010a507398d4b4caca1ae32b/contracts/meta-transaction/NativeMetaTransaction.sol#L90
Replay protection fails
Multiple executions possible
State inconsistencies
Manual Review
Add signature validation
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.