OAK — OnChain Attack Knowledge

Worked example · 2026-06

Namada — an IBC transfer-logic flaw drains the Multi-Asset Shielded Pool while a stale indexer masks the loss — Namada (Cosmos / IBC) — 2026-06-19

Loss
~$600,000 realised. On 2026-06-19, an attacker drained shielded assets — ATOM, USDC, OSMO, TIA, NYM and others — from Namada's Multi-Asset Shielded Pool (MASP) by exploiting a flaw in its IBC transfer logic, sweeping shielded IBC assets cross-chain. On-chain balances for the affected tokens fell to zero, yet some explorers and Namada's own front-end continued to display the funds as available because a stale indexer kept serving pre-exploit balances while live RPC queries already returned zero — so the loss initially went unnoticed. DefiLlama lists the event as a $600K Protocol-Logic exploit dated 2026-06-19. (Public detail is limited and Namada has stated it is still investigating; this entry is preliminary and will be refined as the root cause is disclosed.)
OAK Techniques observed
OAK-T10.002 (Message-Verification Bypass — preliminary mapping. The load-bearing primitive is a cross-chain transfer-logic flaw at the IBC boundary: the shielded pool released/credited assets via an IBC transfer path that should not have validated, breaking the pool's value-conservation invariant. IBC is the cross-chain messaging substrate, so a transfer that the IBC/MASP logic accepts but should have rejected is the T10 "act on an invalid cross-chain transfer" shape — here in a shielded-pool / privacy setting rather than a classic lock-mint bridge. The exact defective predicate is not yet public; pending Namada's post-mortem, OAK records this as a T10.002-adjacent IBC-transfer-logic flaw and flags a possible forward-candidate sub-technique (shielded-pool IBC value-conservation bypass) for TAXONOMY-GAPS. See techniques/T10.002-message-verification-bypass.md). The privacy dimension is also a forensics amplifier: shielded-pool opacity plus the stale-indexer divergence (below) delayed detection, which is itself the durable teaching content of this case.
Attribution
pseudonymous. The drain was surfaced by security researchers noting that affected MASP token balances had fallen to zero on live RPC while explorers still showed them, and catalogued by DefiLlama as a Protocol-Logic / IBC-transfer-logic incident; Namada confirmed the exploit and opened an investigation. No named actor, no disclosed on-chain cluster at time of writing. Date: 2026-06-19.
Key teaching point
Monitor live chain state, not the indexer — a loss your dashboards cannot see is a loss you cannot respond to. The most transferable lesson here is not the (still-unpublished) IBC bug but the detection failure: Namada's funds were gone on-chain while a stale indexer kept reporting them as present, so the exploit was masked at exactly the layer most teams watch. Defenders should (1) reconcile indexer/front-end balances against live RPC and against the chain's own value-conservation invariants, and alert on divergence between the two as a first-class signal — a shielded pool whose component balances drop to zero on RPC must page someone regardless of what the indexer says; (2) treat privacy/shielded-pool accounting as requiring explicit invariant checks (total shielded value in vs out per asset), since the opacity that protects users also hides theft; and (3) for any chain exposing assets over IBC, fuzz and formally check the shielded/IBC transfer path for value-conservation, because the cross-chain boundary is where the pool's "nothing leaves without backing" invariant is hardest to enforce. Namada is OAK's anchor for indexer-masked loss — a detection anti-pattern independent of the underlying vulnerability class.

Summary

Namada is a Cosmos-ecosystem, IBC-connected privacy protocol whose Multi-Asset Shielded Pool (MASP) holds many assets (ATOM, USDC, OSMO, TIA, NYM, …) in a single Zcash-derived shielded pool, with assets entering and leaving over IBC. On 2026-06-19, an attacker exploited a flaw in Namada's IBC transfer logic to sweep shielded IBC assets cross-chain, draining roughly $600,000 and dropping the affected tokens' on-chain balances to zero.

The loss was masked: a stale indexer continued to serve pre-exploit balances, so explorers and front-ends showed the funds as still present even though live RPC queries returned zero. The divergence is what delayed recognition of the incident. DefiLlama classified it as a Protocol-Logic exploit (IBC transfer logic), and Namada confirmed it and began investigating. As of writing, the precise defective check has not been published, so the technique mapping below is preliminary.

Timeline (UTC)

When Event OAK ref
Pre-2026-06-19 Namada MASP holds multi-asset shielded balances entering/leaving over IBC; the IBC transfer path carries a value-conservation flaw (standing T10-class surface)
2026-06-19 Attacker exploits the IBC transfer logic to sweep shielded ATOM/USDC/OSMO/TIA/NYM cross-chain; on-chain balances fall to zero (~$600K) T10.002-adjacent execution
2026-06-19/20 Loss masked by a stale indexer still serving pre-exploit balances; researchers spot RPC-vs-indexer divergence; DefiLlama logs $600K Protocol-Logic incident (detection failure → discovery)
2026-06-20 Namada confirms the exploit and opens an investigation (operator response)

What defenders observed

  • At-event (RPC-vs-indexer divergence — the primary signal). The decisive observable was that live RPC balances hit zero while the indexer/front-end still showed funds. Reconciling the two and alerting on divergence is the highest-leverage control here and is independent of the underlying bug class — it would catch any loss that an indexer lags behind.
  • At-event (shielded value-conservation break). Component MASP balances dropping to zero is a violation of the pool's per-asset "value in ≥ value out" invariant; an explicit shielded-pool conservation monitor is the protocol-level confirmation signal.
  • At-event (IBC transfer path). The vector was the IBC transfer logic, i.e., the cross-chain boundary of the shielded pool — the layer where backing must be enforced as assets move between chains. Pre-deployment formal verification / fuzzing of the shielded-IBC transfer path is the pre-event control (mechanism pending Namada's disclosure).
  • Detection lesson (generalisable). The case stands primarily as a monitoring anti-pattern: dashboards and explorers that read from an indexer can show a healthy balance over a drained pool. Loss-of-funds alerting must be wired to live chain state and invariants, not to the same indexer users see.

Public references

Discussion

Namada is a deliberately preliminary entry: the dollar figure is small (~$600K) and the precise IBC/MASP defect is not yet public, so its near-term value to OAK is the detection lesson rather than a fully-specified technique. The stale-indexer-masked loss is a clean, transferable anti-pattern — it is the data-layer analogue of "a tree falls in the forest": the funds were gone, but the systems everyone watched still reported them present. Contributors building OAK's detection/data-source guidance should treat indexer-vs-RPC reconciliation and shielded-pool value-conservation invariants as named controls, because both are bug-class-independent and would have surfaced this loss in real time.

On classification, the case should be revisited once Namada publishes its post-mortem. If the root cause is a verification/validation flaw in the shielded-IBC transfer path, it firms up as a T10.002 IBC-transfer sub-shape (the first shielded-pool instance in the family); if it is instead a pure accounting/precision flaw inside MASP independent of cross-chain verification, it may sit better under a T9.x logic subclass. Until then OAK records it as T10.002-adjacent (IBC transfer-logic) with the shielded-pool value-conservation bypass flagged as a forward candidate.

Techniques demonstrated (1)