*The burn function in BidBeasts_NFT_ERC721.sol is declared as public, allowing anyone to call it and burn any NFT token by its ID. No access control is enforced, so unauthorized actors can arbitrarily destroy tokens they do not own.
Likelihood: High
Any user can call this function at any time, making the attack trivial and frequent.
Whenever any external account calls burn, the specified token is destroyed regardless of ownership.
No checks are performed to restrict burning to the token's owner or an approved operator.
Impact:
Any NFT in the contract can be destroyed by any user.
Loss of user assets and trust, potentially irrecoverable financial and reputational damage.
If tokenId belongs to victimAddress, an attacker can call burn(tokenId) and destroy the victim’s NFT. Since there is no ownership check, this can be done repeatedly and at scale.
Restrict burning so only the owner or an approved operator can burn their tokens.
Use the standard _isApprovedOrOwner ERC721 helper for access control.
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.