The current logic requires the true owner of an egg NFT to first transfert to the vault, and then call the depositEgg
function. If an attacker backruns the NFT transfer to the vault, they can claim the ownership of the deposited egg to the vault.
The depositEgg
function does not check that the depositor
is the real owner of the NFT that has been deposited.
NFTowner
transfers the egg NFT N
to the vault
attacker
calls depositEgg(N, attackerAddress
attacker
calls withdrawEgg(N)
and gets steals the NFT
A legit owner of a deposited egg could loss ownership to an attacker after transfering the egg NFT to the vault.
Manual review.
The depositEgg
function should take care of the NFT transfer itself to prevent backrun attack.
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.