If some users want to bid or unbid at auctionEndTime, maicious attacker can front-run users' tx and call auctionEnd in advance. The users' bid and unbid will revert.
FjordAuction::bid
FjordAuction::unbid
FjordAuction::auctionEnd
From above code, if block.timestamp is equal to auctionEndTime, The three function (bid/unbid/auctionEnd) can be called.
If some users want to bid or unbid at auctionEndTime, maicious attacker can front-run users' tx and call auctionEnd in advance. The users' bid and unbid will revert.
If some users want to bid or unbid at auctionEndTime, maicious attacker can front-run users' tx and call auctionEnd in advance. The users' bid and unbid will revert.
manual
The protocol doesn't properly treat the `block.timestamp == auctionEndTime` case. Impact: High - There are at least two possible impacts here: 1. By chance, user bids could land in a block after the `auctionEnd()` is called, not including them in the multiplier calculation, leading to a situation where there are insufficient funds to pay everyone's claim; 2. By malice, where someone can use a script to call `auctionEnd()` + `bid(totalBids)` + `claimTokens()`, effectively depriving all good faith bidders from tokens. Likelihood: Low – The chances of getting a `block.timestamp == auctionEndTime` are pretty slim, but it’s definitely possible.
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.