The _authorizeUpgrade
function is only protected by the onlyOwner
modifier, allowing the owner to upgrade the implementation contract to any address.
The _authorizeUpgrade
function is only protected by the onlyOwner
modifier, which means that the owner of the contract can upgrade the implementation contract to any address. This could potentially allow the owner to upgrade the contract to a malicious implementation, which could steal all the assets from the vault.
The owner could upgrade the contract to a malicious implementation, potentially stealing all assets from the vault and causing significant financial damage.
Manual code review and analysis.
Implement additional checks in the _authorizeUpgrade
function to ensure that the new implementation contract is a valid and trusted contract. Consider using a timelock or a governance mechanism to delay the upgrade and allow users to vote on it.
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.