Normal behavior: Only the token owner or approved operator can burn a given ERC721 token.
Issue: burn(uint256) lacks authorization checks and calls _burn directly, allowing any caller to burn any token.
Likelihood:
Any external caller can call burn(tokenId) at any time
No preconditions or approvals required
Impact:
Permanent loss of user NFTs
Denial of service on the collection
Calling .burn on any BidBeasts NFT regardless of its owner will go through and result in loss of user and platform funds.
I recommend implementing using the _isApprovedOrOwner guard to protect this function from unauthorized burns.
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.