Boost _ Folks Finance 33566 - [Smart Contract - Low] RepayWithCollateral will almost always fail in
Description
Description
function decreaseBorrow(
LoanManagerState.UserLoan storage loan,
DataTypes.UpdateUserLoanBorrowParams memory params
) external returns (uint256 principalPaid, uint256 interestPaid, uint256 excessPaid, uint256 loanStableRate) {
LoanManagerState.UserLoanBorrow storage loanBorrow = loan.borrows[params.poolId];
loanStableRate = loanBorrow.stableInterestRate;
updateLoanBorrowInterests(loanBorrow, params);
uint256 balance = loanBorrow.balance;
uint256 interest = balance - loanBorrow.amount;
excessPaid = params.amount > balance ? params.amount - balance : 0;
interestPaid = Math.min(params.amount, interest);
principalPaid = params.amount - interestPaid - excessPaid;
loanBorrow.amount -= principalPaid;
balance -= principalPaid + interestPaid;
if (balance == 0) clearBorrow(loan, params.poolId);
loanBorrow.balance = balance;
}Impact
Recommend Mitigations
Proof of concept
Proof-of-Concept
PreviousBoost _ Folks Finance 33546 - [Smart Contract - Medium] Adversaries can manipulate victims stable raNextBoost _ Folks Finance 33568 - [Smart Contract - Medium] Front-running vulnerability in cross-chain l
Last updated
Was this helpful?