During the refinance auction
a loan can be forced
upon another lender as there is no check
to ensure that the caller
of the buyLoan()
function is the owner of the pool
(especially by a malicious lender who has an undesirable loan that needs to be liquidated)
During an auction, buyLoan()
is called by anyone but must have
a pool with tokens according to the comment above the function.
This means, lenders that find the loan desirable can buy the loan for themselves or if undesirable is left to be liquidated.
But the function lacks a check
to ensure that the msg.sender
is the owner of the pool. Therefore it can be called by any anyone to give a loan to any lender who may not want the loan.
Therefore a malicious actor
can force a bad loan
upon any lender as just a pool id is needed for the function.
Manual Review
Checks should be added to ensure that only the owner
of the pool can call and claim
a loan during an auction.
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.