The UUPS guidelines are not followed and anyone is authorized to upgrade the contract.
The OpenZeppelin documentation states that the _authorizeUpgrade
function must be overridden to include access restriction to the upgrade mechanism.
This function is called by upgradeTo
and upgradeToAndCall
. Normally, this function will use an access control modifier such as Ownable.onlyOwner
. This is not the case in Line 167 of MondrianWallet2.sol.
A malicious user can upgrade the protocol with a new version. This upgraded new version of the protocol can allow all the funds of the protocol to be transferred to the malicious user.
Manual Review
_authorizeUpgrade
on Line 167 of MondrianWallet2.sol must revert when called by non owner. Look at the following code.
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.