20,000 USDC
View results
Submission Details
Severity: high

Borrower has no saying in the loan liquidation process in Lender contract

Summary

The function seizeLoan(uint256[] calldata loanIds) can be executed as long as long as the auction has ended. Even if the borrower has not defaulted.

Vulnerability Detail

The function seizeLoan(uint256[] calldata loanIds) public puts the borrower in a vulnerable position, as he has no control over the liquidation process.
Even though he won't have to pay any fees/interest, he will lose his collateral, he might lose money if the collateral price goes up.

Impact

Borrowers could face unmerited financial losses, especially if the collateral's value goes up.

Tools Used

A detailed review of the code base was conducted to identify this issue.

Recommendation:

Add a check for LTV, only liquidate the loan if LTV gets lower than maxLoanRatio.

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.