Currently the setPool()
method, which creates a pool in the Lender
contract, only checks if the auctionLength
is smaller or equal to the MAX_AUCTION_LENGTH
and not equal to 0. The lower bound for the auction duration is not restrictive enough. As a result, it is possible to create auctions that will be doomed to failure.
A malicious lender can create a pool with auctionLength
set to a value smaller than the timestamp difference between two blocks, for example 1 second. The only scenario in which someone buys the loan in the same block as the auction started is by utilizing backrunning and accepting 0 interestRate
, which is highly improbable. Therefore this auction will have almost no chance at succeeding and the lender will be guaranteed to claim the collateral.
Malicious lenders can claim collaterals without a valid auction, given that they trick the user to borrow from their maliciously configured pool.
Manual review
Change the lower bound of the auctionLenght
to a more reasonable value, such as 12 hours.
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.