Low
The contract lacks any mechanism to handle ETH accidentally sent to it. If users mistakenly send ETH directly to the contract address, those funds will be permanently locked with no way to recover them.
The contract doesn't include a receive()
or fallback()
function to handle incoming ETH transfers. While the contract is primarily designed to work with USDC, it's common for users to mistakenly send ETH to contract addresses.
Without proper ETH handling mechanisms, any ETH sent to the contract will be permanently locked. This is especially problematic because:
The UI/UX might not make it clear that ETH is not used in the protocol
Users often mix up token addresses when performing transactions
There's no recovery mechanism for accidental ETH transfers
Manual code review
Add a receive()
function that either:
Reverts incoming ETH transfers to prevent accidental locks:
OR alternatively, add a recovery mechanism for accidental ETH transfers:
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.