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.