The contract defines an internal function MoondrianWallet::_validateSignature
which is responsible for validation of the signature of the message. However, this function always returns that the signature is valid.
The function _validateSignature
defined in Line 113 of MoondrianWallet.sol
always returns SIG_VALIDATION_SUCCESS
. The function does not take into the account the result of the execution of the recover function of the Elliptic Curve Digital Signature Algorithm (ECDSA).
The _validateSignature
function is executed by the validateUserOp
function of the Account Contract. Thiss function must validate the caller is a trusted EntryPoint. The defined in the MoondrianWallet.sol
function will always return that the caller is a trusted which can result in an execution of a malicious operation.
Manual Review
Check the result of the ECDSA.recover
execution if it is equal to the owner and return SIG_VALIDATION_FAILED
otherwise on Line 120.
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.