The Vault Owner is able to change the NFT contract at any time using EggVault::setEggNFT, allowing for potential breach of trust.
Allowing the Vault Owner to change the NFT contract at any time, without emitting an event to alert Players may lead to potential breaches of trust. For example, the Vault Owner may change the NFT contract to one with a different implementation of transferFrom which will call back into EggVault::withdrawEgg to exploit lack of re-entrancy guards.
Protocol broken by Vault Owner.
Manual review.
The Player should be informed of the change in NFT contract by an event:
Exploitation in this case may also have been prevented by adding a nonReentrant modifier to the function call.
Owner is trusted and is not expected to interact in ways that would compromise security
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.