Summary: LiquidationBranch
uses outdated price feeds, enabling unfair liquidations.
Vulnerability Details:
The liquidateAccounts
function in LiquidationBranch.sol
does not validate the freshness of Chainlink oracle data. Stale prices (e.g., due to a halted oracle) allow attackers to liquidate healthy positions or avoid liquidation of underwater accounts.
Code Reference:
Attack Scenario:
A Chainlink oracle fails to update for 24 hours due to a technical issue. An attacker liquidates accounts using the outdated price, unfairly seizing collateral from positions that are actually solvent at current market rates.
Impact: High – Loss of user collateral due to incorrect liquidations.
Recommendations:
Add timestamp checks to ensure price data is within a valid threshold (e.g., 1 hour).
Use secondary oracles for redundancy.
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.