Platform: Code4rena
Start Date: 24/02/2022
Pot Size: $75,000 USDC
Total HM: 21
Participants: 28
Period: 7 days
Judge: alcueca
Total Solo HM: 15
Id: 94
League: ETH
Rank: 11/28
Findings: 1
Award: $1,479.11
🌟 Selected for report: 0
🚀 Solo Findings: 0
FNDNFTMarket
allows market offer to be made on auctioned NFTs that have not been finalised by the auction winner. Auction winner can call acceptOffer()
to accept the offer and finalise the auction in a single call.
However, the current implementation has an incorrect logic where accepting the offer will transfer the NFT to the auction winner instead of the offerer, causing the offerer to lose fund but not receiving the NFT.
acceptOffer()
. Bob's fund is distributed to Alice, but the NFT is still sent to Alice.Manual code review
Modify the logic in NFTMarketReserveAuction._transferFromEscrow()
so it properly transfer the NFT to the offerer.
Specifically, in L557-L560:
_finalizeReserveAuction(auctionId, false)
to _finalizeReserveAuction(auctionId, true)
.return
statement so the code continues and transfers correctly.#0 - HardlyDifficult
2022-03-02T16:45:31Z
Duplicate of https://github.com/code-423n4/2022-02-foundation-findings/issues/49
This is an excellent find and the report is very detailed & clear! We are implementing the recommended change.