The oracle should only return fresh, recently updated prices to ensure accurate position valuations and prevent liquidations based on outdated data. The getPrice() function fetches price data from Chainlink but only validates that the price is non-zero, ignoring the updatedAt timestamp that indicates when the price was last updated.
During network congestion or oracle downtime, Chainlink feeds can become stale for hours/days
Market crashes can trigger oracle pauses, leaving old prices active
This happens regularly during extreme volatility
Users get liquidated based on outdated prices when their actual position is healthy
Protocol calculates incorrect leverage ratios using stale prices
Flash loan repayment calculations fail when swap prices differ from stale oracle prices
Loss of user funds through unfair liquidations
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.
The contest is complete and the rewards are being distributed.