The vault's deposit flow requires NFTs to be transferred first and registered later, creating a critical race condition.
Location: Interaction between EggHuntGame.depositEggToVault()
and EggVault.depositEgg()
Technical Issue:
Current flow: transferFrom()
→ separate depositEgg()
call
Between these steps:
NFT already belongs to vault
Ownership record doesn't exist yet
Attack Scenario:
Alice transfers NFT to vault
Bob front-runs her depositEgg()
call
Bob registers himself as depositor
Alice loses withdrawal rights
Theft of deposited NFTs
Permanent loss of user funds
Manual control flow analysis
Encoded Data Transfer
Front-running depositEgg allows deposit ownership hijacking.
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.