Hawk High

First Flight #39
Beginner FriendlySolidity
100 EXP
View results
Submission Details
Impact: low
Likelihood: high
Invalid

`LevelTwo` is not a UUPSUpgradeable contract, thus preventing further upgrades to the school system

Summary

LevelTwo is not a UUPSUpgradeable contract. Once the school system has been upgraded from LevelOne to LevelTwo, any further upgrades to the proxy and LevelTwo are impossible.

Impact

Impact: Low, the school system proxy contract and LevelTwo implementation are stuck from any further upgrades
Likelihood: High, principal will upgrade school system at the end of school session (after 4 weeks)
Severity: Low

Tools Used

Manual review

Recommendations

Make LevelTwo contract a UUPSUpgradeable contract to allow for further upgrades

LevelTwo

+ import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";
.
.
.
+ modifier onlyPrincipal() {
+ if (msg.sender != principal) {
+ revert HH__NotPrincipal();
+ }
+ _;
+ }
.
.
.
+ contract LevelTwo is Initializable, UUPSUpgradeable {
- contract LevelTwo is Initializable {
.
.
.
+ function _authorizeUpgrade(address newImplementation) internal override onlyPrincipal {}
Updates

Lead Judging Commences

yeahchibyke Lead Judge about 1 month ago
Submission Judgement Published
Invalidated
Reason: Design choice
yeahchibyke Lead Judge about 1 month ago
Submission Judgement Published
Invalidated
Reason: Design choice

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.