In an ERC721 implementation, the burn function should only be callable by the token owner or an approved operator. This prevents unauthorized users from destroying other users’ NFTs.
In the BidBeasts contract, the burn(uint256) function is declared public and directly calls _burn(_tokenId) without verifying ownership or approval. This exposes the function to the public and allows any account to burn arbitrary tokens, regardless of whether they own them.
Likelihood:
The function is declared public, so any external account can call it at any time.
No access control or ownership checks are performed before burning a token.
Impact:
Any user can destroy NFTs belonging to other users.
This results in a total loss of user assets and irreversible denial-of-service for the NFT collection.
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.