The _processResponse function sets lastPrimeRate without bounds checking, allowing extreme rates to propagate to LendingPool. This high-impact, medium-likelihood vulnerability could inflate borrowing costs or trigger unfair liquidations, bypassing LendingPool’s 5% change limit over time through repeated updates.
The function accepts any uint256 rate from the oracle without validation. Example:
Oracle raises rate from 1e18 to 100e18 (100%) over 60 calls (5% increments, max 1.05e18 each).
LendingPool applies 100e18 to $10M in loans (10M crvUSD).
Health factors drop (e.g., 1.5e18 to 0.75e18), liquidating 5M crvUSD in collateral.
Attacker profits 5M crvUSD from discounted assets.
The protocol risks significant losses (e.g., 5M crvUSD per exploit), a high-impact issue from distorted rates affecting loan health. The medium likelihood stems from gradual manipulation being feasible with a compromised oracle, threatening financial integrity.
Manual Code Review: To verify missing bounds in _processResponse.
Add bounds validation:
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.