The _processResponse function decodes response without verifying its integrity, risking reverts from malformed data that stall prime rate updates. This medium-impact, low-likelihood issue could leave LendingPool using stale rates, misaligning operations with market conditions.
The function assumes a valid uint256 in response without safeguards. Example:
Oracle sends malformed response (e.g., non-uint256 data).
abi.decode reverts, lastPrimeRate stays at 1e18 (1%) from prior update.
Market rate shifts to 5e18 (5%), LendingPool uses 1e18 for 10M crvUSD loans.
Users over-borrow 8M crvUSD, risking 4M crvUSD loss on correction.
The protocol risks moderate losses (e.g., 4M crvUSD), a medium-impact issue from operational misalignment. The low likelihood reflects rare malformed responses from Chainlink, but the lack of error handling amplifies the consequence of such failures.
Manual Code Review: To verify absence of error handling in _processResponse.
Use try-catch for decoding:
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.