OAK — OnChain Attack Knowledge

Worked example · 2025-09

Shibarium bridge validator-key + flash-loan-amplified PoS-bridge exploit — Ethereum ↔ Shibarium — 2025-09-12

Loss
approximately $2.3M–$4.1M across 17 distinct token positions exfiltrated from the Shibarium PoS-bridge contract. Reported figures vary by source: the Shiba Inu team's own September-22 dev report pegs direct losses at approximately $4.1M; PeckShield-aligned figures and other contemporaneous reporting cluster around $2.3M–$2.4M. Headline asset breakdown (per the team's published breakdown): ~$1.0M ETH, ~$1.3M SHIB, ~$717K KNINE, ~$680K LEASH, ~$260K ROAR, plus smaller balances of TREAT, USDC, USDT, BAD, SHIFU, FUND, DAI, LTD, xFUND, WBTC, OSCAR. 4.6M BONE used to amplify validator-signing-stake during the attack was subsequently frozen by the team via the bridge contract's emergency-pause path; freezing the BONE materially reduced the attacker's net realised position relative to gross extraction.
OAK Techniques observed
OAK-T10.001 (Validator / Signer-Key Compromise — primary; the attacker controlled or compromised signing authority over 10 of 12 PoS-bridge validators, sufficient to satisfy the 2/3 super-majority required to authorise checkpoint / exit-proof state changes from Shibarium to Ethereum) + OAK-T9.002 (Flash-Loan-Enabled Exploit — the attacker flash-borrowed 4.6M BONE to amplify validator-stake-weight in the same execution-context) + OAK-T16.001 (Vote Takeover via Flash-Loan — composing sub-pattern: the attacker flash-borrowed 4.6M BONE in the same execution-context as the malicious checkpoint to amplify the staked-BONE-derived voting weight of the controlled validator set, ensuring the 2/3 super-majority computation resolved in the attacker's favour) + OAK-T9.004 (Access-Control Misconfiguration — at the bridge-contract layer: the validator-set-eligibility check resolved against same-block staked-BONE balances rather than against snapshotted balances at checkpoint-proposal time, which is the textbook anti-pattern that enables T16.001 to compose with T10.001 in the bridge-validator setting) + OAK-T7.001 (laundering — partial; the team's emergency-freeze recovered the BONE float but not the cross-chain-egressed ETH / WBTC / stablecoin proceeds).
Attribution
pseudonymous at the time of writing. PeckShield, Hexens, and Seal 911 joined the Shiba Inu team's forensic investigation; the team's own report enumerates four candidate intrusion vectors (developer-machine compromise, AWS-KMS-cloud compromise, npm-supply-chain compromise, insider) without confirming a single one. No real-world attribution has been published. The validator-signing-keys were primarily stored in AWS KMS per the team's disclosure.
Key teaching point
Shibarium is the canonical 2025 worked example of T10.001 + T16.001 composing in the PoS-bridge setting. The case demonstrates that flash-loan-amplified validator-stake-acquisition is operationally viable against PoS-bridge security models that resolve validator-set-eligibility against same-block staked balances. It is the cleanest 2025 anchor for the T10 / T16 intersection and pairs with the canonical Ronin (T10.001 single-vector validator-key-compromise; March 2022) and Beanstalk (T16.001 single-vector flash-loan vote; April 2022) cases as the combined-vector T10+T16 sub-shape canonical anchor.

Summary

Shibarium is an Ethereum-Layer-2 PoS sidechain operated by the Shiba Inu ecosystem, anchored to Ethereum via a bridge contract that uses a 12-validator quorum requiring a 2/3 super-majority (8 of 12) to sign off on cross-chain state checkpoints and exit proofs. Validator-set-eligibility was computed against staked-BONE balances at checkpoint-execution time. Validator signing keys were stored primarily in AWS KMS, with the operational responsibility distributed across the Shibarium core-development team and operator partners.

On 2025-09-12 ~18:44 UTC, an attacker submitted a malicious checkpoint proof from Shibarium to the Ethereum bridge contract. The proof was signed by 10 of 12 validators — a clear super-majority — and consequently was accepted by the Ethereum-side bridge contract as a legitimate state transition. The "state transition" authorised the withdrawal of 17 distinct token balances from the bridge's Ethereum-side custody to attacker-controlled addresses. The team's subsequent forensic report disclosed that, in the same execution context as the malicious checkpoint, the attacker flash-borrowed 4.6M BONE; the validator-set-eligibility check resolved against the same-block staked-BONE balance, which the flash-borrow temporarily inflated past the 2/3 super-majority threshold even for any controlled-validator set whose direct staked-BONE balance was below the threshold prior to the flash-loan. The combination of (a) compromised validator signing keys for ≥8 of 12 validators or (b) compromised keys for fewer-than-8 validators amplified to 8+ via flash-loan-amplified staked-BONE balance produced the same outcome — the malicious checkpoint signed and accepted.

The Shiba Inu team detected the bridge state divergence within hours, paused the bridge contract via its operator-side emergency-pause path, and froze the 4.6M BONE position before the attacker could repay the flash-loan or unwind the BONE position. The freezing of the BONE (executed via the bridge / staking-contract emergency-pause primitive that the team retained owner-side authority over) was the operational recovery channel for the BONE-side exposure; the cross-chain-egressed ETH / WBTC / stablecoins on the Ethereum side were not recoverable through the same path because the bridge's Ethereum-side custody had already executed the withdrawal. The team subsequently engaged Hexens, PeckShield, and Seal 911 for parallel forensic investigation; PeckShield's on-chain trace and the team's own dev-report disclosed candidate intrusion vectors (developer-machine compromise, AWS-KMS-cloud compromise, npm-supply-chain attack, insider) without confirming any single one publicly at the time of writing. The attacker's identity remains pseudonymous-unattributed.

The reported headline-loss figures vary by source: the team's September-22 dev-report frames the direct realised loss as approximately $4.1M across the 17 token positions; contemporaneous reporting from Cyvers, AmbCrypto, and others clustered around $2.3M-$2.4M, primarily reflecting the gross-vs-net-of-frozen-BONE distinction and price-movement on the affected long-tail tokens between the attack timestamp and the reporting timestamp. SHIB's market-cap drop (~11.5% at the daily close) and BONE's drop (~43.5% post-flash-loan-spike) compound the realised-loss-to-market-cap impact substantially beyond the direct extraction figure.

Timeline (UTC)

When Event OAK ref
pre-2025-09-12 Shibarium PoS bridge in production: 12-validator quorum, 2/3 super-majority for cross-chain state, validator-set-eligibility resolved against same-block staked-BONE balances; signing keys in AWS KMS (standing T10.001 + T9.004 + T16.001 surface deployed)
pre-2025-09-12 (intrusion-vector window) Attacker compromises (or controls) signing authority for some subset of the 12 validators via candidate vectors: developer-machine compromise, AWS-KMS compromise, npm-supply-chain attack, or insider T10.001 setup (validator-key compromise)
2025-09-12 ~18:44 UTC Attacker initiates flash-loan of 4.6M BONE in the same execution context as the malicious checkpoint submission; validator-set-eligibility resolves against the temporarily-amplified staked-BONE balance T16.001 (flash-loan-amplified validator stake)
2025-09-12 ~18:44 UTC Malicious checkpoint signed by ≥10 of 12 validators (combination of compromised-key signatures and flash-loan-amplified-stake-validator signatures); checkpoint submitted to Ethereum-side bridge contract T10.001 + T16.001 + T9.004 (composed)
2025-09-12 ~18:45 UTC Ethereum-side bridge contract accepts the checkpoint and authorises 17 token-position withdrawals to attacker-controlled addresses; 17 tokens egress to Ethereum-side attacker custody T10.001 extraction (T9.004 access-control surface)
2025-09-12 (~hours later) Shiba Inu team detects bridge state divergence; pauses the bridge contract via operator-side emergency-pause path; freezes the 4.6M BONE position before the attacker repays the flash-loan (operator response — partial recovery)
2025-09-12 to 2025-09-16 Team engages Hexens, PeckShield, Seal 911 for parallel forensic investigation; cross-references AWS-KMS audit logs, dev-machine endpoint telemetry, npm-package supply-chain indicators (forensic record)
2025-09-13 First public team statement confirming the exploit, the BONE-freeze, and the engagement of forensic firms (operator response)
2025-09-16 The Shib Daily publishes a status summary citing the limit-loss outcome and the 4.6M BONE freeze (defender record)
2025-09-22 Shiba Inu lead developer Kaal publishes the latest dev-report enumerating candidate intrusion vectors and pegging direct loss at approximately $4.1M across 17 token positions (operator response — extended forensic disclosure)
ongoing No real-world attribution published; ETH / WBTC / stablecoin Ethereum-side proceeds not recovered; BONE position remains frozen pending governance / community decision on remediation path (cohort context)

What defenders observed

  • Pre-event (validator-set-eligibility-computation layer): the Shibarium bridge resolved validator-eligibility against same-block staked-BONE balances rather than against snapshotted balances at checkpoint-proposal time. This is the exact T9.004 + T16.001 anti-pattern that Beanstalk April 2022 exposed at the governance-token-voting-weight layer, applied here at the validator-signing-weight layer: same-block balance computation makes the bridge security composition dependent on flash-loan-resistance, which AWS-KMS-stored signing keys cannot provide because the flash-loan happens at the staked-balance layer rather than at the signing-key layer. The T16.001 mitigation (snapshot-based stake at checkpoint-proposal time over a multi-block window) closes the surface by construction; Shibarium's bridge did not implement this pattern at v1. The cross-chain lesson-propagation observation here is structurally identical to the one we documented in Vee Finance (examples/2021-09-vee-finance.md): the Beanstalk April-2022 lesson at the governance layer was published, widely-read, and propagated into post-2022 governance-contract designs (Compound Governor Bravo's checkpoint pattern), but the same lesson at the bridge-validator-set layer did not propagate into Shibarium's bridge design 41 months later.
  • Pre-event (validator-key custody layer): AWS-KMS-stored signing keys are a known T10.001 attack surface — both Ronin (March 2022) and Harmony Horizon (June 2022) demonstrated that cloud-KMS-stored validator keys are exfiltrable when the developer-machine, cloud-account, or supply-chain perimeter is compromised. The Shibarium team's own four-candidate-intrusion-vector enumeration explicitly includes all three of these vectors. The v0.1 OAK observation is that cloud-KMS-stored validator keys remain a recurring T10.001 surface across 2022-2025, and the canonical Ronin / Harmony / Shibarium chain demonstrates that the design-pattern problem has not been addressed at the industry level even three years after the original lesson.
  • At-event (single-block signature): the malicious checkpoint, the flash-loan, and the bridge-withdrawal-execution were all in the same execution context. A real-time bridge-monitoring detector that correlated flash-loan events with validator-stake-recomputation events and checkpoint-submission events would have produced a high-confidence signature in the same block. No such detector was deployed at the runtime layer; PeckShield's on-chain post-event trace was the canonical defender record.
  • At-event (validator-signature distribution): ≥10 of 12 validators signed the malicious checkpoint, but the staked-BONE distribution underlying those signatures was anomalous — at least one validator's signing weight had been amplified by the same-block flash-loan and was disproportionate to the validator's pre-event staked-BONE balance. A real-time validator-stake-distribution monitor would have observed the stake-share anomaly in the same block as the checkpoint submission.
  • Post-event (BONE freeze as partial recovery channel): the team retained owner-side authority over the staking contract sufficient to freeze the 4.6M BONE position before the attacker could repay the flash-loan or unwind the BONE-side position. This is a partial-recovery channel distinct from the full set of recovery shapes documented elsewhere in OAK (Mango Markets negotiated recovery, Curio 10% bounty, Euler 90% return, Harvest unprompted partial return, protocol-funded reimbursement at Vee Finance / bZx). The Shibarium BONE-freeze recovery channel depends on the protocol's owner-side staking-contract authority being sufficient to freeze attacker-side BONE positions during the attack — a design surface that is itself a centralisation tradeoff (it would not have been available in a fully-decentralised PoS bridge), and one that future T10.001 contributions should track as a discrete recovery-channel category.

What this example tells contributors writing future Technique pages

  • T10.001 + T16.001 compose at the validator-stake-eligibility layer. The canonical T16.001 anchor (Beanstalk April 2022) is at the governance-token-voting-weight layer. Shibarium demonstrates the same Technique class applied at the bridge-validator-stake-weight layer. T10.001 contributions documenting PoS-bridge cases should explicitly check whether the validator-set-eligibility-computation primitive resolves against same-block staked balances or against snapshotted balances at checkpoint-proposal time; if the former, T16.001 is composable and the case must be dual-mapped.
  • Cross-chain lesson propagation is structurally slower at the bridge-validator-set layer than at the governance-contract layer. The Beanstalk lesson (snapshot-based voting power at proposal-creation time) propagated broadly into post-2022 governance contracts (Compound Governor Bravo checkpoint pattern adopted across top-tier DeFi). The same lesson did not propagate into bridge-validator-set-eligibility designs even 41 months later. T10.001 contributions should track this propagation gap and treat it as a structural observation about how lessons cross sub-domains within crypto-protocol design.
  • Cloud-KMS-stored validator keys remain a recurring T10.001 surface 2022-2025. Ronin (cloud-KMS-equivalent operator-side key custody, March 2022) → Harmony Horizon (cloud-KMS-equivalent, June 2022) → Shibarium (AWS-KMS, September 2025) is a 41-month T10.001 chain demonstrating that the design-pattern problem has not been addressed at the industry level. Future T10.001 contributions should explicitly enumerate cloud-KMS-stored signing keys as a recurring attack surface and report on whether new bridge designs adopt hardware-security-module-anchored signing or air-gapped signing-station patterns instead.
  • Owner-side staking-contract authority enables a freeze-as-partial-recovery channel that is itself a centralisation tradeoff. The 4.6M BONE freeze is a clean example of a recovery channel that depends on the protocol's owner-side authority being preserved at the staking-contract layer. This is a discrete recovery-channel category distinct from negotiated recovery, bounty-back, protocol-funded reimbursement, or unprompted return. Contributors documenting T10.001 / T9.004 / T14.x cases should track this recovery channel explicitly and note its centralisation-tradeoff dependency.

Public references

Citations

  • [shibariumannouncement2025] — operator-side Twitter announcement; canonical for the 4.6M-BONE flash-loan and the BONE-freeze.
  • [shibdailyshibariumstatus2025] — operator-side limit-loss status summary.
  • [shibariumkaaldevreport2025] — operator-side extended forensic disclosure ($4.1M direct loss, 17 tokens, candidate intrusion vectors).
  • [ccnshibarium2025] — contemporaneous press; per-asset breakdown.
  • [blockonomishibarium2025] — contemporaneous press; validator-key-lockdown.
  • [bitcoinistshibarium2025] — contemporaneous press; intrusion-vector disclosure framing.
  • [vibraniumshibarium2025] — independent audit-firm forensic walkthrough; technical framing.
  • [zhou2023sok] — academic taxonomy classifying bridge-validator-key-compromise as a recurring T10.001 class.
  • [ellipticronin2022] — companion T10.001 origin citation; cited here for the Ronin / Harmony / Shibarium 41-month chain framing.

Discussion

Shibarium September 2025 occupies the slot in the canonical T10.001 chain — Ronin (March 2022) → Harmony Horizon (June 2022) → Multichain (July 2023) → Orbit Bridge (January 2024) → Shibarium (September 2025) — and is the cleanest 2025 anchor for T10.001 + T16.001 composing in the PoS-bridge setting. The structural lesson is that the Beanstalk April-2022 lesson at the governance layer (snapshot-based voting power at proposal-creation time) propagated broadly into post-2022 governance-contract designs (Compound Governor Bravo checkpoint pattern adopted across top-tier DeFi), but the same lesson did not propagate into bridge-validator-set-eligibility designs even 41 months later. The cross-chain / cross-sub-domain lesson-propagation gap is structurally identical to the one observed in Vee Finance September 2021 (examples/2021-09-vee-finance.md), where the bZx / Harvest oracle-design lesson did not propagate from Ethereum into Avalanche's audit-and-deploy tooling 18 months after the original lesson.

The combined-vector T10.001 + T16.001 sub-shape is operationally distinct from either component alone. T10.001 alone (Ronin, Harmony Horizon) requires sufficient validator-key compromise to satisfy the super-majority threshold directly; T16.001 alone (Beanstalk) requires the validator-set-eligibility-computation primitive to be flash-loan-resistant. Shibarium demonstrates that partial T10.001 compromise (fewer than the super-majority threshold of validator keys) composes with T16.001 stake-amplification to produce the same outcome as full T10.001 compromise. Future T10 / T16 contributions documenting bridge-validator-set incidents should explicitly check for both vectors and dual-map when both are load-bearing.

The BONE freeze as a partial-recovery channel is the v0.1 OAK reference for protocol-owner-staking-contract-authority as a recovery channel category. The full taxonomy of T10.001 recovery channels now reads: (a) full-recovery via attacker negotiation (Poly Network 2021), (b) partial-recovery via attacker negotiation (Euler 2023, Curio 2024), (c) freeze-via-protocol-owner-authority (Shibarium 2025 BONE side), (d) recovery-via-bridge-rescue-deployment (Ronin Bridge Rescue 2024 — pre-empted T10.001 via emergency-multisig-rotation), (e) protocol-funded reimbursement (Vee Finance 2021), (f) zero recovery (Ronin original, Harmony Horizon, Multichain, Orbit Bridge). Future T10 contributions should map each new case to one of these categories explicitly.

Attribution-strength is pseudonymous-unattributed at the time of writing. The team's enumeration of four candidate intrusion vectors (developer-machine compromise, AWS-KMS compromise, npm-supply-chain compromise, insider) without confirming any single one is structurally identical to the parallel-candidate-vector attribution shape we observed in 2024-12 Solana web3.js npm supply-chain (examples/2024-12-solana-web3js-npm-supply-chain.md) — both cases demonstrate that even with engaged forensic firms (PeckShield, Hexens, Seal 911 here), the root-cause-vector may remain unconfirmed weeks after the event when the evidence-trail spans multiple candidate enclaves (cloud audit logs, endpoint telemetry, package-registry forensics). The attribution-strength label may be upgraded to inferred-strong if a subsequent forensic disclosure confirms a single vector; at the time of writing, the available evidence does not warrant that upgrade.

Techniques demonstrated (5)