Description
The MondrianWallet::_validateSignature
should inspect the signature and return either
SIG_VALIDATION_SUCCESS
or SIG_VALIDATION_FAIL
depending on the result of the call to ECDSA.recover(hash, userOp.signature)
. The current implementation does not inspect the result of the call to recover
at all, and always returns SIG_VALIDATION_SUCCESS
Impact
Signature validation is fundamentally broken and all signatures are considered to be valid.
Recommended mitigation
Review the API calls used for signature verification and ensure the return value of ECDSA.recover
is used to determine validity of the signature.
Implement robust and comprehensive unit tests.
Tools
Manual Review
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.