Function _authorizeUpgrade
inherited from UUPSUpgradeable.sol
lacks access control, while playing a critical role in checking access control to UUPSUpgradeable::upgradeToAndCall
, which changes the implementation for the proxy contract.
This allows anyone to upgrade MondrianWallet to a malicious implementation, opening the window to stolen funds and/or denialing the service of the contract.
Include the following test in MondrianWallet2Test.sol
:
And also import this contract to the test:
Foundry and manual review
Implement access control to the function MondrianWallet2::_authorizeUpgrade
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.