The depositEgg function allows anyone to claim ownership of an NFT that has been transferred to the vault. This creates a race condition where attackers can frontrun legitimate deposits and steal NFTs.
The depositEgg function only checks if the NFT is in the vault, but not who sent it. When a user sends their NFT to the vault and tries to call depositEgg to claim it, a frontrunner can watch the mempool and call depositEgg first, setting themselves as the depositor. Since the NFT is already in the vault, the frontrunner's transaction succeeds, making them the recorded owner who can later withdraw the NFT.
Malicious user can steal any NFT sent to the vault by frontrunning the legitimate depositor's transaction.
Manual
Implement a deposit pattern that combines the transfer and registration in a single tx.
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.