Normal behavior: When transferring NFTs to potentially-contract recipients, use safeTransferFrom to enforce onERC721Received compatibility or revert.
Issue: The marketplace uses transferFrom for escrow and distribution, which succeeds even when the recipient contract cannot handle ERC721. This can lock NFTs irrecoverably.
75:2025-09-bid-beasts/src/BidBeastsNFTMarketPlace.sol
97:2025-09-bid-beasts/src/BidBeastsNFTMarketPlace.sol
213:2025-09-bid-beasts/src/BidBeastsNFTMarketPlace.sol
Likelihood:
Occurs when a bidder or seller is a contract without ERC721 receiver hook
Common in composable or testing setups
Impact:
NFT becomes stuck at recipient address with no ability to transfer out
User loss or platform liability
Foundry-style PoC: a non-receiver contract buys via buy-now and becomes the owner.
The marketplace uses transferFrom, so no receiver check is performed and the NFT gets stuck.
Use safeTransferFrom to avoid this issue.
Non-safe transferFrom calls can send NFTs to non-compliant contracts, potentially locking them permanently.
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.