Worked example · 2026-06
Taiko bridge — a leaked SGX prover signing key forges L2-state proofs to drain the L1 bridge — Ethereum L1 ⇄ Taiko Alethia L2 — 2026-06-21
Summary
Taiko Alethia is an Ethereum Layer-2 (a based rollup) whose proving system includes Intel SGX attestations produced by its raiko prover. Taiko's L1 contracts release bridged assets when presented with a proof of the corresponding L2 state; for the SGX path, the L1 verifier accepts a proof if it was produced by an enclave whose signing identity matches a trusted instance key registered on-chain.
The RSA-3072 private key used to sign that SGX enclave was committed to the public taikoxyz/raiko GitHub repository. An attacker retrieved it, signed their own enclave so its attestation matched the trusted signer, and registered the malicious instance as a legitimate SGX prover. With a "trusted" prover under their control, they generated forged L2-state attestations — proofs of bridge-withdrawal state transitions that never occurred — and submitted them to the L1 Bridge and ERC20Vault. Because each forged proof was correctly signed by a trusted key, the verification predicate passed and the contracts released funds. The drain ran in two phases on 2026-06-21 → 06-22, removing ~$1.7M in USDC, ETH, and TAIKO.
Taiko confirmed the verification compromise, paused the bridge and block production/proving, urged users to withdraw funds from the affected bridges, and coordinated with exchanges to freeze attacker-controlled assets. Several outlets placed the incident in the 2026 cross-chain proof-forgery class blamed for well over $300M across a dozen-plus bridge exploits this year.
Timeline (UTC)
| When | Event | OAK ref |
|---|---|---|
| Pre-2026-06-21 | RSA-3072 SGX instance signing key is committed to the public taikoxyz/raiko repo; Taiko's L1 SGX verifier trusts any enclave whose signer matches the registered instance |
T15.004 standing exposure |
| 2026-06-21 | Attacker signs a malicious enclave with the leaked key and registers it as a legitimate SGX prover | T15.004 → T10.002 setup |
| 2026-06-21 → 06-22 | Attacker submits forged, correctly-signed L2-state proofs to the L1 Bridge / ERC20Vault; verification passes; ~$1.7M (USDC/ETH/TAIKO) drained across two phases |
T10.002 execution |
| 2026-06-22 | Taiko confirms the compromise, pauses the bridge and proving/block production, urges bridge withdrawals, coordinates exchange freezes | (operator response) |
| 2026-06-22 → 06-23 | SlowMist and third-party write-ups (thirdweb, Crypto Times, TechTimes) publish the leaked-raiko-key root cause |
(third-party forensics) |
What defenders observed
- Pre-event (secret-in-source-control). The load-bearing exposure was a privileged signing key in a public repository — discoverable to anyone, with no intrusion required. There is no on-chain signal for this; the control is historical and pre-commit secret-scanning across all org repositories, with attestation/enclave keys explicitly enumerated as scan targets and held only in HSM/sealed storage (OAK-T15.004 mitigation surface).
- At-event (newly-registered prover instance). The on-chain fingerprint is a new SGX prover/instance registration followed immediately by withdrawal proofs from that instance with no corresponding canonical L2 state. A monitor on prover-registration events plus a reconciliation invariant ("every L1 withdrawal maps to a finalised L2 state root") is the highest-leverage runtime control and would have fired on the first forged withdrawal.
- At-event (single-backend authority). A single proving backend (SGX) was sufficient to authorise withdrawals; an M-of-N multi-proof requirement (SGX and ZK) would have made the leaked key insufficient on its own. The absence of corroboration is the structural amplifier.
- At-event (no withdrawal rate-limit). The two-phase drain proceeded without a per-window value cap or challenge delay; either would have bounded realised loss and widened the human-response window before Taiko paused.
- Post-event (containment). Taiko's pause-of-proving-and-bridge plus exchange-coordinated freezes is the correct response template; the residual lesson is that the trust-anchor key must be rotated and the entire trusted-instance set re-attested before unpausing.
Public references
[thirdwebtaiko2026]— thirdweb, "Taiko Bridge Exploit Explained: Forged Proofs, Leaked Key, $1.7M Loss" (RSA-3072 SGX signing key committed to publictaikoxyz/raiko; attacker registered a malicious prover and forged L2-state attestations; two-phase drain of L1 Bridge + ERC20Vault; ~$1.7M USDC/ETH/TAIKO): https://blog.thirdweb.com/taiko-bridge-exploit-explained-how-a-leaked-key-led-to-1-7m-in-forged-withdrawals/[cryptotimestaiko2026]— Crypto Times, 2026-06-22, "$1.7M Gone: Taiko Bridge Exploited After SGX Signing Key Leak" (date; SGX signing-key leak; chain-state verification compromise): https://www.cryptotimes.io/2026/06/22/1-7m-gone-taiko-bridge-exploited-after-sgx-signing-key-leak/[techtimestaiko2026]— TechTimes, 2026-06-23, "Ethereum L2 Bridge Exploit Drains $1.7M: Leaked SGX Key Defeats Taiko Trust Model" (trust-model framing; L1 contracts trusted any enclave matching the stored signer; bridge withdrawal urged): https://www.techtimes.com/articles/318886/20260623/ethereum-l2-bridge-exploit-drains-17m-leaked-sgx-key-defeats-taiko-trust-model.htm[cryptoeconomytaiko2026]— Crypto Economy, "Taiko Sounds the Alarm After Bridge Exploit Drains $1.7M in Unauthorized Withdrawals" (operator response: pause, withdrawal warning, exchange coordination): https://crypto-economy.com/taiko-sounds-the-alarm-after-bridge-exploit/[spotedtaiko2026]— SpotedCrypto, "Taiko Bridge Exploit June 2026: $1.7M SGX Key Leak Explained" (MrSigner/instance-trust mechanism; malicious prover registration; forged attestations): https://www.spotedcrypto.com/taiko-bridge-exploit-june-2026/
Discussion
Taiko is the cleanest 2026 addition to OAK's T10.002 family because it isolates a sub-shape none of the prior anchors carry: the verification predicate was correct and was satisfied honestly — the attacker's proofs really were signed by a trusted instance key. Every other T10.002 anchor fails because the predicate is wrong or under-specified (Nomad's zero root, Wormhole's missing account check, Verus's missing amount check, MAP's non-injective hash, Syscoin's parser misread). Taiko fails because the secret that anchors a correct predicate was published. That makes it the canonical reference for the lesson that TEE/attestation-based verification does not remove key-management risk — it concentrates it into the enclave signing key, and a leaked enclave key is indistinguishable on-chain from a legitimate prover until reconciliation against canonical state catches the unbacked withdrawal.
It also sits at the T15.004 ↔ T10.002 boundary in a way worth recording for contributors: the entry vector is mundane (a secret in a public repo — the same class of failure as any leaked API key) but the blast radius is a bridge-draining forged-proof primitive, because the leaked credential was the trust anchor of the proving system rather than an ordinary operational key. Future contributors documenting TEE/ZK rollup incidents should record, per incident, (a) where the attestation/prover signing keys live and whether any could reach a public surface, and (b) whether a single proving backend can unilaterally authorise withdrawals — those two variables are what converted a leaked key into a $1.7M drain, and an M-of-N multi-proof design plus an independent withdrawal circuit-breaker are the structural fixes. A forward-candidate T10.002 sub-technique (TEE-attestation-key exposure) is flagged for TAXONOMY-GAPS pending a second independent anchor.