ERC721R Bug
Last updated
Last updated
An NFT protocol enabling minters to return the minted NFT for a refund in a certain period.
In the typical case, the NFT dev calls this withdraw()
function after refundEndTime to withdraw the Eth raised from minting. This step is OK.
But, check the refund function: Minter calls this func to return the NFTs he minted to the refundAddress
(an address set and controlled by dev) then gets the corresponding amount of $ETH back from the NFT contract. But what if refundAddress
is a minter holding one of the NFTs?
A scam dev will set a refundAddress, then mint an NFT with this refundAddress
. Next step, he calls refund()
. Because the NFT will always return to refundAddress, he still possesses that NFT while collecting some amount of Eth. He can do it multiple times until all funds run out.
Stauts
Fixed
Type
Contract
Date
Apr 12, 2022
Source
Direct Loss
None. It was reported in the early stage.
Project Repo