The normal behavior should be that only the token owner or approved addresses can burn their own NFTs, similar to how ERC721 transfers work with ownership validation.
The current implementation allows any user to burn any NFT regardless of ownership, leading to permanent asset destruction and potential marketplace disruption.
Likelihood: High
Any malicious actor can call this function at any time with any valid token ID
The function is public and has no access controls or prerequisites
Impact: High
Complete permanent loss of user NFTs with no recovery mechanism
Financial loss for NFT holders who paid for their tokens
Marketplace disruption when listed NFTs are burned while auctions are active
The PoC demonstrates how any malicious user can permanently destroy NFTs belonging to other users without any authorization or ownership validation.
Add the test below to the BidBeastsMarketPlaceTest.t.sol.
And use the following command:
The burn() function should only allow the **token owner **or an approved operator to burn their own NFT, which follows standard ERC721 security practices and prevents unauthorized asset destruction.
In the BidBeasts ERC721 implementation, the burn function is publicly accessible, allowing any external user to burn NFTs they do not own. This exposes all tokens to unauthorized destruction and results in permanent asset loss.
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.