If the excess util is very low the interest accrued over time will be very low as well. This can simply happen by someone borrowing up to the _surgeMantissa and then accruing interest one block later.
Calculation of borrow rate probably should have a summand added as a constant instead of just being calculated as a fraction, something like _surgeRate + x/y
minhtrng
medium
Low excess utils causes low interest accrual
Summary
BorrowRate calculation is based on excess util. This can cause almost non-existing borrow rates even though in surge state.
Vulnerability Detail
The function
getBorrowRateMantissa
calculates the borrowRate in surgeState like this:If the excess util is very low the interest accrued over time will be very low as well. This can simply happen by someone borrowing up to the _surgeMantissa and then accruing interest one block later.
Impact
Reduced yields
Code Snippet
https://github.com/sherlock-audit/2023-02-surge/blob/1d3b83769d14d954478118269e1bcba175462c9c/surge-protocol-v1/src/Pool.sol#L180
Tool used
Manual Review
Recommendation
Calculation of borrow rate probably should have a summand added as a constant instead of just being calculated as a fraction, something like
_surgeRate + x/y