Description: The contract doesn't implement protection against signature replay attacks. An attacker could intercept a valid transaction and replay it multiple times. We can see that in the function _validateTransaction
Impact:
Alice signs a transaction to send 1 ETH to Bob.
The transaction is broadcasted and executed successfully.
An attacker intercepts this transaction.
The attacker repeatedly calls executeTransactionFromOutside
with the intercepted transaction.
The wallet executes the same transaction multiple times, potentially draining Alice's funds.
Recommended Mitigation:
Implement a nonce-based replay protection:
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.