According to the natspec of the updateReserveInterests the function should be called before any operation that changes the state of the reserve how ever this function was not called when setting a new prime rate for the reserve which inherently changes the state of the reserve in the function setPrimeRate
https://github.com/Cyfrin/2025-02-raac/blob/89ccb062e2b175374d40d824263a4c0b601bcb7f/contracts/libraries/pools/ReserveLibrary.sol#L115-L148
https://github.com/Cyfrin/2025-02-raac/blob/89ccb062e2b175374d40d824263a4c0b601bcb7f/contracts/core/pools/LendingPool/LendingPool.sol#L674-L680
https://github.com/Cyfrin/2025-02-raac/blob/89ccb062e2b175374d40d824263a4c0b601bcb7f/contracts/core/oracles/RAACPrimeRateOracle.sol#L26-L41
The setPrimeRate function modifies the reserve's interest rate parameters without first calling updateReserveInterests. This omission means that any accrued interest since the last update is not accounted for before changing the prime rate. Since updateReserveInterests is responsible for updating the liquidity and usage indices based on the elapsed time, skipping it results in stale indices being used in subsequent calculations.
Operations relying on the liquidity or usage index after setPrimeRate will use outdated values
Borrowers will be affected as the protocol will calculate interest based on outdated indices.
Manual Review
Call the updateReserveInterests before setting a new prime rate.
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.