OAK — OnChain Attack Knowledge

Worked example · 2026-07

42DAO / Balance Protocol — the attacker pokes an abnormally low BTCB price into the vault-health contract, making solvent vaults look insolvent, and liquidates them — 42DAO / Balance Coin (BNB Chain) — 2026-07-22

Loss
~$912K–915K — SlowMist estimates ~$912,000 and PeckShield ~$915,000; OAK records both. Balance Coin (BLC), the protocol's algorithmic stablecoin, lost its dollar peg entirely, falling from about $0.997 to roughly $0.0025 — a 99.75% collapse within 24 hours. The realised damage therefore substantially exceeds the extracted figure: the $915K is what the attacker took, while the depeg wrote down every BLC holder.
OAK Techniques observed
OAK-T9.001 (Oracle Price Manipulation — primary, confirmed mechanism, and in the downward / liquidation-triggering direction, which is the inverse of this Technique's usual shape. The attacker used the protocol's Spotter poke function to inject an artificially low BTCB price into the accounting contract that calculates vault health. The Median Oracle feeding Spotter accepted the abnormal price with no sanity check and no circuit breaker, and because there were no price-deviation limits, no minimum-price requirement, and no maximum-drawdown limit, the false price became active instantly. Overcollateralised vaults were made to appear insolvent, the automated liquidation machinery fired, and the attacker took the collateral. See techniques/T9.001-oracle-price-manipulation.md). OAK-T5.001 (Hard Drain — the extraction leg: seized collateral plus the sale of newly minted BLC into USDT, which is what converted a liquidation event into a depeg).
Attribution
pseudonymous. No named individual or group, and no public link to a tracked OAK actor. SlowMist and PeckShield independently sized the loss at ~$912K and ~$915K respectively.
Key teaching point
Almost every oracle control in production is built to catch a price going up, and this attacker went down. The standard defensive intuition around oracle manipulation is inflation — push collateral value up, borrow more than it is worth, walk away. 42DAO inverts it: push collateral value down, and the protocol's own liquidation engine does the extraction for you, against positions that were never actually unhealthy. That inversion matters operationally because a deviation bound implemented as a ceiling is only half a control, and because liquidation is the one subsystem designed to move quickly and irreversibly on the oracle's word — it exists precisely to act before the price moves further, which is exactly the property an attacker wants. The controls named by the absence here are the complete set and none of them is exotic: a symmetric deviation limit rejecting moves beyond a band in either direction, a minimum-price floor, a maximum-drawdown limit, and — most valuable — a liquidation-specific delay or confirmation window so that a single price update cannot both establish insolvency and execute against it in the same instant. 42DAO had none, so one poke was sufficient.

Summary

42DAO operates Balance Protocol on BNB Chain, issuing Balance Coin (BLC), an algorithmic stablecoin backed by overcollateralised vaults. Vault health is computed by a Spotter contract, which receives asset prices — including BTCB — from a Median Oracle.

On 2026-07-22, an attacker called the Spotter poke function to push an abnormally low BTCB price into the accounting contract. The Median Oracle applied no sanity check to the value and the protocol had no circuit breaker, no price-deviation limit, no minimum-price requirement, and no maximum-drawdown limit. The false price therefore took effect immediately.

At that price, vaults that were genuinely overcollateralised registered as insolvent. The protocol's automated liquidation system fired against them, and the attacker liquidated the positions and seized the collateral, leaving bad debt behind and selling newly minted BLC into USDT.

Losses were sized at approximately $912,000 by SlowMist and $915,000 by PeckShield. The consequence for the token was far larger than the extraction: BLC lost its peg outright, falling from roughly $0.997 to about $0.0025, down 99.75% in a day.

Timeline (UTC)

When Event OAK ref
(standing) Median Oracle feeds BTCB prices to the Spotter vault-health contract with no sanity check, no circuit breaker, no deviation limit, no minimum price, and no maximum-drawdown bound (standing T9.001 surface)
2026-07-22 Attacker calls Spotter's poke function, injecting an abnormally low BTCB price; the value becomes active instantly T9.001 exploitation
2026-07-22 Overcollateralised vaults register as insolvent; automated liquidations fire; attacker liquidates and seizes collateral, leaving bad debt T9.001 → T5.001
2026-07-22 Newly minted BLC sold into USDT; ~$912K–915K extracted T5.001
2026-07-22 BLC depegs from ~$0.997 to ~$0.0025 (−99.75%) within 24 hours (market consequence)
after SlowMist and PeckShield publish loss estimates of ~$912K and ~$915K (analysis)

What defenders observed

  • Pre-event (a one-sided deviation bound is half a control). Deviation limits are frequently reasoned about, and sometimes implemented, as protection against inflated prices. A symmetric band — rejecting any move beyond a threshold in either direction — costs nothing extra and is the difference between catching this and not (M09).
  • Pre-event (liquidation is the fastest path from a false price to realised loss). Borrowing against inflated collateral at least requires the attacker to draw funds; liquidation machinery is designed to act immediately and irreversibly on the oracle's word. Any protocol whose liquidation engine consumes an oracle should treat that path as its highest-severity oracle-integration surface, and should consider a delay or second-source confirmation specifically for liquidation-triggering price moves even where ordinary pricing updates remain instant (M09, M17).
  • Pre-event (an unguarded poke is a write to the accounting contract). A function that pushes a price into the contract computing vault health is a privileged write regardless of what it is named. The review question is who may call it, what values it will accept, and what happens between acceptance and effect — here the answer was, respectively, the attacker, any value, and nothing.
  • Pre-event (no minimum price, no maximum drawdown). Two independent bounds, either of which would have rejected the update, and neither present. For a vault system holding a single dominant collateral asset these are cheap, static parameters requiring no market data.
  • At-event (mass liquidation of previously healthy vaults is the signal). A cluster of vaults transitioning from comfortably overcollateralised to liquidatable in one block, driven by a single price write, is a distinctive and easily detectable pattern. Alerting on liquidation volume per block against a baseline would have fired immediately (M04, M05).
  • Response (the depeg is the real cost and it is not in the loss figure). $915K left with the attacker; the token went to $0.0025. Any accounting of this incident that stops at the extracted amount understates it by orders of magnitude, because an algorithmic stablecoin whose collateral engine can be induced to liquidate solvent vaults has lost the property that made it a stablecoin.

Public references

Discussion

42DAO completes a set of three distinct oracle-path failures inside eleven days in OAK's July 2026 cohort, and the three are worth reading as a group because they fail in three different places for three different reasons. Bonzo Lend (2026-07-12) consumed a third-party verifier that accepted an all-zero signature, inflating SAUCE by twelve orders of magnitude to over-borrow. Solido Cash (2026-07-23) misconfigured its own feed so that stale-price fallback logic overvalued backstop collateral, allowing an over-mint. 42DAO (2026-07-22) took a correctly-functioning price path and pushed a deflated value through it to trigger liquidations. Broken verifier, misconfigured fallback, unguarded write — and in all three, the consuming protocol had no bound on how implausible a price it would act upon. That single missing control is the common denominator across cases whose upstream causes have nothing in common, which is the strongest available argument for treating the deviation breaker as mandatory rather than as defence in depth.

The directional point is 42DAO's own contribution and the reason it earns a file at under $1M. OAK's oracle-manipulation examples skew heavily toward inflation, because the intuitive attack is to make worthless collateral look valuable. Deflation is the quieter and in some ways more efficient variant: the attacker does not need to borrow anything, does not need to construct a position, and does not need the protocol to hand over funds voluntarily — the liquidation engine performs the extraction on the attacker's behalf, using logic the protocol considers its own risk management. Contributors documenting future oracle cases should record the direction of manipulation explicitly, because it determines which control would have caught it and because a defence built only against ceilings leaves the floor open.

Finally, this case is a reminder that loss figures are a poor proxy for severity in stablecoin systems. At $915K extracted, 42DAO ranks near the bottom of the July cohort; measured by what happened to holders, BLC went to $0.0025 and the protocol's core claim died with it. The same is true in the other direction at examples/2026-07-wemix-stablecoin-contract-ownership-unauthorized-mint.md, where a mint compromise forced a network-wide halt because unbacked units of a pegged asset convert at every venue honouring the peg. For pegged assets, the blast radius is set by the peg, not by the transaction.

Techniques demonstrated (2)