Ostium's LP vault down $23.75M after oracle-feed forgery
Attackers compromised off-chain price signing for Ostium's Arbitrum perpetuals DEX, submitted forged price attestations, and drained $23.75M from the LP vault.
An on-chain perpetuals DEX is deterministic. The contract does what the contract says: it takes a price, it opens a position at that price, it settles that position against a later price. The trust boundary is one line lower than most people look. The price has to come from somewhere off-chain — a signer, a keeper, an aggregator — and everything above that line runs on the assumption the number it just ate was legitimate.
Ostium’s off-chain price feed was compromised the week of July 16. On July 20 the team disclosed the mechanics: an attacker submitted illegitimate price reports disguised as valid ones, then rapidly opened and closed large positions to bank the resulting artificial profits. The contract logic executed correctly the entire time. From the LP vault’s perspective, someone bought low and sold high with perfect timing on trades that shouldn’t have existed. $23.75 million in USDC left the vault. The attacker converted it to 12,080 ETH and deposited 10,540 ETH into Tornado Cash.
What happened, on the wire
Ostium is a perpetuals DEX running on Arbitrum. Liquidity providers deposit into a vault; that vault takes the other side of trader positions. The pricing that decides who wins each trade comes from an off-chain oracle — price reports pushed on-chain by operator infrastructure, then consumed by the settlement contracts as authoritative.
The disclosure does not yet say how the attacker obtained the ability to submit “illegitimate price reports disguised as valid ones.” The ordinary possibilities are compromise of a signing key, compromise of the operator infrastructure that holds the signing key, or a bug in the on-chain validation path that let an unauthorized report look valid. Ostium has committed to a post-mortem “in the coming days” — until it lands, the specific failure at the physical layer is unknown. What is known is the outcome: the on-chain contract received prices that a downstream position-open call priced against, and the prices were wrong on purpose.
Trading paused within 60 minutes of the first exploit. That part of the response worked. Ostium said in its Sunday update that authorities were notified and stolen-fund movement is being tracked. As of that disclosure trading remains paused; the team committed to at least 24 hours’ notice before operations resume.
Analysis — where the trust actually sits
The word “decentralized” in DEX describes the settlement layer, not the whole system. Most perpetuals protocols on Arbitrum and the other L2s rely on off-chain oracle pipelines — the signing infrastructure, the RPC endpoints the operator publishes from, the keepers that push signed messages — because on-chain price discovery for anything but on-chain-native assets is slow, expensive, or impossible. That off-chain pipeline is the physical layer. Ostium’s isn’t unique in this shape, and the LP vault got drained by trades that were, to the contract, valid. Any audit that stops at the smart-contract source is not auditing the actual attack surface.
The reflex to look sideways at other trust-boundary failures in the last two weeks fits here. Pillar Security’s sandbox-escape series across four AI coding agents worked the same way: the isolated component obeyed every rule inside its scope; a trusted component outside the scope read what the isolated one wrote and acted on it. StepSecurity’s SleeperGem writeup is about a package registry treating dormant-account credentials as authoritative and shipping the resulting gems to CI. Island’s FakeGit report is about downstream systems trusting the raw contents of a repository at face value. The details differ; the shape is the same shape. A system does exactly what it was told to do with input that had already crossed the trust boundary before anyone in the system got to look at it.
What to check today, if you run adjacent infrastructure
For teams operating a similar off-chain-oracle-to-on-chain-DEX shape, the specific items worth an eyes-on review before Ostium’s post-mortem lands are the fee-signing key custody model, whether more than one independent signer has to agree before a price is accepted, the freshness/staleness window the settlement contract enforces on incoming reports, and whether the operator host is on the same trust boundary as the signing key. If any of those four is a single point of failure, the physical layer under the LP vault is thinner than the deposit page suggests.
Found this useful? Share it.


