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.