No check if the Arbitrum Sequencer is down in HOTOracle.sol:_getOraclePriceUSD() and not verifying if answeredInRound value with the roundID
Low/Info issue submitted by rekxor
Summary
Chainlink recommends that all Optimistic L2 oracles consult the Sequencer Uptime Feed to ensure that the sequencer is live before trusting the data returned by the oracle. This check is implemented in ArbiChainlinkOracle.sol, but is skipped in HOTOracle.sol.
Also it doesn't verify the value of answeredInRound with roundID returned from chainlink.
Vulnerability Detail
When utilizing Chainlink in L2 chains like Arbitrum, it's important to ensure that the prices provided are not falsely perceived as fresh, even when the sequencer is down.
Impact
If sequencer has not been available and the price is not the real one, this can result in using stale price.
No check if the Arbitrum Sequencer is down in
HOTOracle.sol:_getOraclePriceUSD()
and not verifying ifansweredInRound
value with theroundID
Low/Info issue submitted by rekxor
Summary
Chainlink recommends that all Optimistic L2 oracles consult the Sequencer Uptime Feed to ensure that the sequencer is live before trusting the data returned by the oracle. This check is implemented in ArbiChainlinkOracle.sol, but is skipped in HOTOracle.sol. Also it doesn't verify the value of
answeredInRound
withroundID
returned from chainlink.Vulnerability Detail
When utilizing Chainlink in L2 chains like Arbitrum, it's important to ensure that the prices provided are not falsely perceived as fresh, even when the sequencer is down.
Impact
If sequencer has not been available and the price is not the real one, this can result in using stale price.
Code Snippet
https://github.com/sherlock-audit/2024-03-arrakis/blob/main/valantis-hot/src/HOTOracle.sol#L138-L149
Tool used
Manual Review
Recommendation
L2 Sequencer down issue: https://docs.chain.link/data-feeds/l2-sequencer-feeds#example-code
Verifying roundID: