Drift Protocol has a number of resiliency checks around oracles. Currently, Drift utilises Pyth and Switchboard as an oracle sources and has the flexiblility to update as necessary on a per market basis.
For robustness, Drift's program checks oracle validity. An oracle will return a price validity error if any of following conditions occur:
1. Stale pricing (latest slot update too far behind, currently: 120 slots)
2. Confidence interval is too large (confidence if very large percent of price, currently: >25%)
3. Negative price (any price field < 0)
4. Price too volatile (TWAP/price ratio out of bounds, currently: 50%)
In the case of oracle error, the market will pause most liquidations and funding rate updates. The on-chain oracle twap calculation will also be shrunk proportional to the duration of the invalid period to avoid errenous payment magnitudes.
In the case of a large oracle and mark price divergence (currently: >10%), and the oracle price is valid, then liquidations will be paused.
Full logic for blocking/allowing liquidations:
The Clearinghouse will also pause risk-increasing trades that further increase large oracle-mark divergence. Closing/reducing a position that further breaches this divergence is also not allowed (unless the divergence has already been breached).
Drift is working on improving resiliency against oracle manipulation.