There is a vulnerability as the codebase does not implement the safeTransferFrom()
function, which is a standard in ERC721 contracts to safely transfer tokens.
The vulnerability simply lies in the absence of the safeTransferFrom()
function. This function is designed to safely transfer tokens, ensuring that the receiving address is capable of handling the token. A contract is marked as being able to “handle” NFTs if it has a function onERC721Received()
which returns the magic bytes4 value 0x150b7a02. This is the function selector of onERC721Received()
which not the case in the Huff implementation.
Without this function, tokens could be transferred to contracts that are not designed to handle them, which could result in the tokens being locked effectively destroying it.
Manual review.
Use ERC721.huff contract from Huffmate.
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.