The UUPSOwnableProxied contract inherits from OpenZeppelin's Ownable and UUPSUpgradeable contracts, intending to provide a convenient ownable UUPS proxy. However, the contract lacks an initializer function to set the initial owner, leaving the contract without a defined owner upon deployment.
Without an initial owner set:
Functions protected by the onlyOwner modifier cannot be executed by any user, rendering these functions unusable.
The contract cannot be properly managed or upgraded as intended, leading to potential security & operational risks.
Deploy the UUPSOwnableProxied contract.
Attempt to call any onlyOwner function ( e.g., _authorizeUpgrade ).
The function will revert since no owner is set.
Implement an initializer function to set the initial owner during the first deployment. This ensures that the owner is correctly set and the onlyOwner functions can be used as intended.
New code should look like this:
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.