Normal behavior :
When the next bidder places a bid, the former bidder gets refunded.
Problem here :
If the former bidder is a contract that can not accept native tokens / eth, then when the next bidder places a bid, the former bidder will not be able de get refunded and the whole transaction will revert. It means his bid will always be in place until the end of the auction. He will always win the auction.
Likelihood: High
Each time a new bidder will be bidding, the transaction will revert and no new bid will be placed.
Impact: High
An attacker can place the first bid at the minimum price, and he will always win the bid. The auction protocol becomes unfair to other participants and loses its value.
Do not accept smart contracts nor smart accounts as bidders.
Or wrap the native tokens before sending them back to the former bidder, this way the refund will always go through.
This process won't change the fact that the transaction will revert:
A solution would be to add a "try/catch" mechanism :
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.