Oracle price check error if L2 sequencer goes down.
In the current implementation, function staleCheckLatestRoundData
in OracleLib contract use block.timestamp
to check the oracle answer is stale or not. However, it's vulnerable when l2 sequencer go down will cause that block.timestamp
is unusable.
L2 chains like arbitrum and optimism upgrade their sequencer occasional, such as the recent optimism bedrock upgrade cause the sequencer can't be able to process transactions for several hours. Or l2 sequencer bug could also cause transactions in stuck, such as arbitrum sequencer bug. So it's necessary to implement an mechanism to handle this issue in some abnormal conditions.
Oracle price check will be failed when l2 sequencer goes down.
vscode, Manual Review
Use chainlink sequencer up feed, consider integrate the up time feed and give contract extra time when l2 sequencer go down.
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.