When a previously trusted oracle is removed from the whitelist of approved oracles by the quantammAdmin in the updateWeighRunner.sol contract, the MultiHopOracle contract continues to use this blacklisted oracle during its data-fetching operations. This behavior contradicts the intended functionality of excluding unapproved oracles from protocol operations.
A MultiHopOracle for ETH-BTC is deployed and configured using two whitelisted trusted oracles:
• ETH-USD
• BTC-USD
The quantammAdmin decides to remove the BTC-USD oracle from the list of approved oracles by calling the removeOracle function in UpdateWeightRunner.sol. link
The _getOracleData function in the main protocol checks the whitelist before fetching data and skips the removed oracle:
When fetching data, the BTC-ETH MultiHopOracle, it does not check whether the oracles are still approved. It continues to query the removed BTC-USD oracle, which results in incorrect or potentially malicious data being fetched and used:
This leads to the use of blacklisted oracles in MultiHopOracle, which can result in incorrect or malicious data affecting protocol operations.
Faulty or malicious oracles may remain functional within the MultiHopOracle, potentially providing incorrect or manipulated data.
vscode
Implement a whitelist validation check in the MultiHopOracle contract to ensure only approved oracles are used. For example:
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.