Both LevelOne and LevelTwo contracts lack mechanisms to handle and recover native ETH and accidentally transferred USDC. Any ETH sent to these contracts becomes permanently locked, and any USDC sent outside the expected enrollment flow is unaccounted for and potentially unrecoverable.
1.Missing ETH Handling Functions: Neither contract implements receive() or fallback() functions necessary to properly handle incoming ETH:
This means if ETH is sent to either contract:
If sent via a function call, it will revert (which is safe but not user-friendly)
If sent via selfdestruct or as a mining/validator reward, ETH will be forcibly added to the contract balance with no way to retrieve it
Unaccounted Direct USDC Transfers: The contracts only account for USDC received through the enrollment process:
If USDC is transferred directly to the contract via:
Direct transfer() or transferFrom() calls
Forced transfers (some tokens allow this)
Airdrops targeting the contract address
These tokens will be in the contract but not accounted for in bursary, becoming effectively lost or requiring a contract upgrade to recover.
No Recovery Mechanisms: The contracts lack any function that would allow authorized users (such as the principal) to recover mistakenly sent assets
The severity is medium because:
It leads to permanent fund loss for users
It affects all assets sent outside designated flows
The lost assets cannot be recovered without a contract upgrade
It could affect the school's reputation
The likelihood is high because:
Users commonly misunderstand contract interaction patterns
Direct ETH transfers are a frequent mistake in blockchain interactions
Frontends might use incorrect patterns for token transfers
The proxy pattern may confuse integrators about which address to interact with
Manual review of contract code
Implement Proper ETH Handling:
Add USDC Recovery Function:
Add Similar Functions to LevelTwo:
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.