The Mondrian Wallet
contract's validateSignature
function lacks proper authentication checks, allowing potentially unauthorized users to execute transactions. This vulnerability arises from the absence of verification to ensure that the provided signature corresponds to the expected signer, the owner
of the Mondrian Wallet
.
The validateSignature
function in the Mondrian Wallet
contract is responsible for verifying the authenticity of the signature included in a UserOp
. However, it only checks the validity of the signature without verifying whether it was signed by the actual owner
of the wallet. This oversight opens up the possibility of unauthorized users submitting transactions with valid, yet forged, signatures, leading to potential security breaches.
The vulnerability exposes the Mondrian Wallet
contract to unauthorized transaction execution. Malicious actors could exploit this vulnerability to carry out unauthorized actions , compromising the integrity and security of the wallet. Additionally, if left unaddressed, this vulnerability will undermine user trust and confidence in the Mondrian Wallet
platform, which will result in loss of users.
Manual code review
To mitigate this vulnerability, it is crucial to update the validateSignature
function to include proper authentication checks. This involves verifying that the provided signature corresponds to the expected signer, the owner
of the wallet. This can be achieved by comparing the recovered signer's address from the signature and owner's address. If the addresses match, the signature is considered valid, otherwise the signature is considered invalidation. Additionally, the state mutability of the function has been changed from pure to view.
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.