See below
In the FjordAuction
contract, the bid function allows users to place bids as long as the current time is not strictly greater than the auction end time (auctionEndTime
). The relevant code snippet is:
The condition block.timestamp > auctionEndTime
means that users can still place bids if the current timestamp is exactly equal to auctionEndTime
. The purpose of the bid
function is to accept bids only before the auction ends, but this implementation allows bids to be placed at the exact end time of the auction, which may not be the intended behavior.
This behavior could lead to unexpected last-second bids being accepted at the exact end time of the auction, potentially disrupting the auction process and fairness.
Manual
To ensure that no bids are accepted at or after the auction end time, modify the condition to:
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.