In LibFertilizer::beginBarnRaiseMigration
, called during migrations, the protocol attempts to retrieve the price of the non-Bean token in the Well pool using Chainlink oracles.
However, this function does not revert if the oracle doesn't support the token; instead, it returns 0. This behavior come from LibChainlinkOracle::getPrice
, which returns 0 instead of reverting in case of an error, and all other functions on the path return 0 if LibChainlinkOracle::getPrice
returns 0.
Likelyhood: Low
Occurs during any barn migration if the aggregator address is incorrect or the oracle is unresponsive.
Impact: High
All tests will pass, leading the protocol to assume smooth migration.
If a non-Bean token lacks a functional oracle link, it will disrupt the entire protocol as it's used to peg the Bean price.
Verify the return value and revert if it's 0:
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.