The contract is attempting to use reinitializer(2) during the graduation process, which is incorrect and dangerous.
Incorrect Timing:
Using reinitializer during graduation
Should be used during contract deployment/upgrade
Graduation is a business logic function, not an initialization function
Missing Initialization:
No state initialization
No validation
No proper state transition
Security Implications:
Anyone can call graduate()
No access control
No validation of upgrade state
State Corruption:
State variables remain uninitialized
Contract becomes unusable
Potential for state corruption
Upgrade Failure:
Upgrade process breaks
State transition fails
Contract becomes stuck
Security Issues:
No validation of upgrade state
No proper state transition
Potential for unauthorized access
Manual code review
Initialization timing analysis
State transition analysis
Separate Initialization:
The system doesn't implement UUPS properly.
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.