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.
In the readme of the project on CodeHawks website it is stated that project will be deployed on L2 chain
If the Arbitrum Sequencer goes down, oracle data will not be kept up to date, and thus could become stale.
Chainlink recommends that users using price oracles, check whether the Arbitrum sequencer is active
https://docs.chain.link/data-feeds#l2-sequencer-uptime-feeds
As a result, users may be able to use the protocol while oracle feeds are stale.
In the above code we can see that the code is using latestRoundData from the chainlink but there isn't any kind of check if the sequencer is up or not
If the Arbitrum sequencer goes down, the protocol will allow users to continue to operate at the previous (stale) rates.
use this example code from chainlink as reference
https://docs.chain.link/data-feeds/l2-sequencer-feeds#example-code
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.