Normal behavior: Stratax relies on StrataxOracle to fetch token prices for calculating leverage, flash loan amounts, and unwind parameters. These prices are used to ensure the position remains healthy and that flash loans can be repaid.
Issue: The contract does not verify that the oracle price is fresh or valid beyond checking > 0. If the oracle feed is stale, frozen, or incorrectly set by the oracle owner, the calculated borrow or withdraw amounts may be inaccurate. This could lead to miscalculated positions, potentially undercollateralized or not reaching the desired leverage.
Likelihood:
Only occurs if the Chainlink oracle feed stops updating or the oracle owner sets a wrong feed address.
Can happen during network downtime, oracle maintenance, or misconfiguration by oracle owner.
Impact:
Borrow and flash loan amounts may be miscalculated, leading to inefficient or unhealthy positions.
Could result in partial liquidation or failure to achieve intended leverage, though funds are protected by Aave’s internal health factor enforcement.
The PoC shows that if the oracle price is not updated or frozen, the contract will calculate leverage and borrow amounts incorrectly. Even though the funds themselves are protected by Aave’s health factor checks, the operation may fail or lead to inefficient capital use, demonstrating the medium risk.
Adding a timestamp check ensures that the oracle price is recent and valid. This prevents miscalculations due to frozen or stale feeds. Using getPriceWithTimestamp (or similar) allows the contract to verify freshness, reducing the likelihood of miscomputed leverage or borrow amounts and making the position safer.
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.
The contest is complete and the rewards are being distributed.