The StrataxOracle getPrice function performs a direct call to the Chainlink price feed. If the price feed reverts (e.g., deprecated feed, contract upgrade, or unexpected failure), the entire call reverts. Stratax calls getPrice in calculateOpenParams, calculateUnwindParams, and _executeUnwindOperation without try/catch or fallback.
There is no mechanism to handle oracle failures. A single oracle revert cascades and reverts the entire transaction, causing DoS for open, unwind, and parameter calculation flows.
Likelihood (low):
Chainlink feeds are generally reliable. Reverts can occur when feeds are deprecated, during network issues, or if the feed contract is upgraded incorrectly.
Impact (high):
Users cannot open or unwind positions. calculateOpenParams and calculateUnwindParams become unusable. Positions may be stuck if the oracle fails during an active unwind flow (e.g., inside _executeUnwindOperation after the flash loan has been taken).
Severity (medium):
Chainlink deprecates the WBTC/USD feed and the new feed address is not yet configured. All calls to getPrice(WBTC) revert. Users cannot open WBTC-collateralized positions or unwind existing ones. The protocol is effectively DoS'd for that asset.
If the revert happens inside _executeUnwindOperation after repaying Aave debt but before completing the swap, the flash loan callback reverts. The flash loan is not repaid; the operation fails. The user's unwind is blocked.
In StrataxOracle: wrap the Chainlink call in try/catch. On failure, revert with a clear error or return a sentinel value that callers can handle.
In Stratax: consider try/catch around oracle calls with a fallback (e.g., cached price, secondary oracle, or explicit revert with user-friendly message). For critical paths (e.g., inside flash loan callback), ensure the failure mode is predictable and does not leave the protocol in an inconsistent state.
Alternatively, return (uint256 price, bool success) and let callers decide how to handle failure.
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.