If a lender starts an auction on a loan, a malicious actor can cause a DOS on the loan, preventing the borrower from being able to access their collateral.
After a lender starts an Auction for a loan, normally, in the refinance auction, anyone with a valid pool with tokens should be able to buy the loan. But the issue is, the buyLoans
function doesn't check to make sure the loan token and collateral token matches the loan token and collateral token in the new poolId
. The implication is, since the buyLoan
function only checks the validity of the auction, the interest rate and the pool size, a malicious actor can create a pool with worthless loan and collateral tokens, and then buy the loan token.
Also, there is no check to ensure that the debt
is above the minLoanSize
of the pool, so even if the pool has a minLoanSize
of 1000e18
, a debt of 10
can be added to the pool.
This token mismatch and minLoanSize
bypass breaks the core functionality of the system, allowing different tokens and debts to be placed in pools with conflicting parameters.
Sufficient checks should be added to the buyLoan
function to ensure the new pool has the same loan and collateral tokens as the loan. And also to ensure the minLoanSize
is not bypassed.
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.