Bidders have no way to withdraw their bids if the auctioned NFT is not claimed. #532
Labels
2 (Med Risk)
Assets not at direct risk, but function/availability of the protocol could be impacted or leak value
bug
Something isn't working
downgraded by judge
Judge downgraded the risk level of this issue
duplicate-739
partial-50
Incomplete articulation of vulnerability; eligible for partial credit only (50%)
Lines of code
https://github.com/code-423n4/2023-10-nextgen/blob/main/hardhat/smart-contracts/AuctionDemo.sol#L104-L120
Vulnerability details
Impact
Bidders's ether could be locked in
auctionDemo
forever if the auctioned NFT is not claimed.Proof of Concept
When auction ends, only global amdin or the winner can call
claimAuction()
to claim the auctioned NFT, all refunds will be returned to all bidders except the winner by iterating through all elements in the arrayauctionInfoData[_tokenid]
. Other bidders have no way to get refund be themself. Moreover,claimAuction()
may revert ifhighestBidder
is smart contract which didn't implementsIERC721Receiver.onERC721Received()
, and all ether received on this auction will be locked in the contract forever.Tools Used
Manual review
Recommended Mitigation Steps
Adding a function to let bidders except the winner can get refund themself after the auction ends.
Assessed type
Other
The text was updated successfully, but these errors were encountered: