The protocol intends to be used on any EVM compatible chains, which includes L2 such as Arbitrum or Optimism.
Using Chainlink in L2 chains such as Arbitrum requires to check if the sequencer is down to avoid prices from looking like they are fresh although they are not.
The bug could be leveraged by malicious actors to take advantage of the sequencer downtime.
The protocol uses Chainlink's AggregatorV3Interface, but does not check the sequencer is down
If a user recreates this contract on an L2, it may result in certain issues if the sequencer is indeed down, for example,
Users can get better borrows if the price is above the actual price
Users can avoid liquidations if the price is under the actual price
Manual Review
It is recommended to follow the code example of Chainlink: https://docs.chain.link/data-feeds/l2-sequencer-feeds#example-code.
Either add the sequencer check to the Chainlink Aggregator Feed, or move the responsibility to the open source developers and state extremely clearly that this code is only meant for the Ethereum network.
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.