Malicious borrower/actor can restart the lender auction causing the lender to be unable to receive the auction payment or the loan's collateral.
The Lender.sol:buyLoan() function helps to anyone to buy a loan which is in auction process. The poolId parameter specify the poolId which will accept the loan.
The problem is that a malicious borrower can call the buyLoan()
function using the same loan's poolId
as a parameter. I created a test where the malicious borrower can restart the lender auction. Test steps:
Lender1 creates a pool and borrower borrows debt 100/collateral 100 from the Lender1.
Lender1 kicks off the auction.
The borrower maliciously buys the loan using the same old poolID from the Lender1.
The malicious borrower doesn't need to deposit any token amount.
The Lender1 auction is restarted. The malicious borrower can repeat the process
causing the lender to be unable to get the collateral.
The malicious borrower/actor can restart the lender auction causing that the lender to be unable to get the loan collateral or to be unable to receive the auction payment. The malicious borrower/actor does not need to deposit money to perform the attack.
Manual review
Validates that the pool which will accept the new loan is not the same pool which has the loan assigned.
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.