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.