The pool's interestRate
is assigned to the loan without the borrower having the possibility to define a maximum value. This allows the pool lender to front-run the borrower by calling the borrow
or refinance
function and setting the maximum possible interestRate
value, i.e., MAX_INTEREST_RATE
. This results in a very high interest payment for the borrower.
If a user/borrower calls the borrow
or refinance
functions, the pool lender can front-run and change the pool's interestRate
to an unfavorable (for the borrower) and very high value (e.g., MAX_INTEREST_RATE
) by using the setPool
function. This results in a very high interest payment for the borrower, calculated in the _calculateInterest
function.
The borrow
function assigns the pool.interestRate
to the loan in L256
The refinance
function updates the loan's auction length to the pool.interestRate
in L688
Unnecessary and unexpected high interest rate for the borrower.
Manual Review
Consider allowing the borrower to define a maximum interest rate when borrowing or refinancing and validate if the pool fulfills this criterion.
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.