The BidBeasts contract implements an ERC721 with custom mint and burn functions.
Burning is completely unrestricted. Any user can call burn(tokenId) and it will call OpenZeppelin’s _burn, which destroys the NFT without checking if the caller is the token’s owner or an approved operator.
This means any user can permanently destroy NFTs owned by other users.
Likelihood: High
The function is public and callable by anyone.
No access control or ownership checks are enforced.
Impact: High
All NFTs can be permanently destroyed by any attacker.
Results in irreversible loss of user funds/assets.
Breaks trust in the NFT collection and the marketplace built on it.
Bob successfully burns Alice’s NFT without approval, proving unrestricted burn() is exploitable.
Restrict burn to only the token owner or approved operator by using the _isApprovedOrOwner modifier.
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.