The updateInterestRatesAndLiquidity
function incorrectly downcasts uint256
values to uint128
when updating reserve.totalLiquidity
, creating potential overflow risks and precision loss in liquidity calculations.
Overflow/Underflow Risk:
Converting uint256
to uint128
via .toUint128()
risks truncation
Values exceeding uint128
maximum will overflow
liquidityTaken
downcasting could cause underflow issues
Precision Issues:
Large values above 2^128 - 1
get truncated
Results in inaccurate liquidity tracking
Affects interest rate calculations
High severity: Potential liquidity calculation errors affecting system stability
Financial risk: Incorrect calculations may allow excess withdrawals or wrong interest rates
Remove downcasting and maintain uint256
precision:
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.