Any user can assign themselves as the depositor of an NFT they do not own, allowing them to later withdraw it and effectively steal the asset.
The depositEgg
function lets any caller provide an arbitrary depositor address, without verifying that the caller owns the NFT or has deposited it properly
The attacker can front-run a legitimate transfer and call depositEgg(tokenId, attackerAddress)
to claim ownership of the NFT.
An attacker could claim and withdraw any NFT that gets transferred to the contract, even if they never owned it.
Manual review
Require the caller to own and transfer the NFT within the function
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.