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.