The ChainlinkOracle contract's _getData() function fails to validate round completion status when fetching price data for QuantAMM's TFMM operations. The function omits the critical check between answeredInRound and roundId returned by the Chainlink oracle's latestRoundData() function.
In QuantAMM's continuous rebalancing environment, accepting incomplete oracle rounds creates severe vulnerabilities. The TFMM mechanism relies on accurate price data to update pool weights and execute portfolio strategies. Incomplete rounds can lead to incorrect weight calculations, causing the entire rebalancing mechanism to make premature or incorrect adjustments.
The risk is amplified in QuantAMM's architecture because:
Temporal function market making depends on precise price data for weight adjustments
Composite pools could propagate incorrect rebalancing actions across multiple strategies
Automated trading decisions based on preliminary data could lead to systemic portfolio misalignments
BTF value calculations using unconfirmed prices affect the entire fund structure
Strategy execution based on incomplete rounds could trigger unnecessary rebalancing operations
Implement round completion validation in the _getData function:
LightChaser: ## [Medium-4] Insufficient oracle validation
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.