Normal Behavior:
In an auction, the next bid should be calculated using the formula:
This ensures a correct percentage-based increment from the last bid.
Issue:
The current implementation uses:
This causes rounding errors due to integer division, potentially lowering the required next bid and letting bidders bypass the intended minimum increment.
Likelihood:
Occurs whenever previousBidAmount is not perfectly divisible by 100.
Happens frequently in ETH amounts (e.g., 0.015 ETH, 1.333 ETH).
Impact:
Allows bids lower than the true required increment.
Sellers lose money due to under-enforced bidding rules.
Example with previousBidAmount = 101 wei, S_MIN_BID_INCREMENT_PERCENTAGE = 5:
Expected Required Amount = 101 * 105 / 100 = 106
Actual Required Amount = (101 / 100) * 105 = 105
Result: Bidder can underpay by 1 wei, bypassing intended rules.
Integer division in requiredAmount truncates fractions, allowing bids slightly lower than intended.
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.