Executive summary
rsETH LayerZero OFT Exploit
Kelp's bridge relied on a single verifier, run by LayerZero Labs, to confirm cross-chain transfers. That verifier checked transactions by polling a set of independent servers for what had happened on-chain. North Korean attackers identified exactly which servers the verifier used, broke into some and replaced their software with a tampered version that reported a fake transaction, and knocked the rest offline by flooding them with traffic. With only the compromised servers responding, the verifier approved a Unichain-to-Ethereum transfer that never happened, releasing 116,500 rsETH from the bridge's reserves.
Root cause
1-of-1 DVN configuration
Kelp's Unichain→Ethereum OFT route was configured with LayerZero Labs itself as the sole Decentralized Verifier Network signer. With a 1-of-1 DVN, a compromised attestation path was sufficient to release funds; no independent co-signer existed to reject the forged payload.
op-geth implant inside trust boundary
Attackers, attributed to DPRK Lazarus / TraderTraitor, placed a malicious op-geth binary on two upstream RPC nodes that the DVN observed Unichain through. DDoS forced failover onto those nodes, which returned fabricated PacketSent events. Signing behaved correctly; inputs were forged.
Gaps in the LayerZero postmortem
Which RPC providers operated the two compromised nodes? How was the op-geth implant introduced — social engineering of an operator (the Lazarus / TraderTraitor playbook)?
Timeline
Aave attack economics
How 116,500 fraudulently released rsETH became $193M of borrowed WETH + wstETH. Figures sourced from the Aave governance incident report on April 20, 2026.
Total bad debt lands between $124M and $230M depending on how Kelp prices the shortfall. Two scenarios from the Aave report:
- S1 · uniform — Kelp redeems rsETH 1:1 against remaining backing, spreading a 15.12% depeg across every rsETH holder. Mainnet Aave absorbs most of the hit because that is where the largest rsETH collateral base sits; L2 markets see only a proportional haircut.
- S2 · L2-isolated — Kelp honors mainnet rsETH at full value and isolates the loss to L2 markets that received bridged-but-unbacked rsETH, forcing a 73.54% haircut on those chains. Mainnet carries no bad debt.
112,204 rsETH remains unbacked against 152,577 remote claims outstanding — the shortfall being allocated below. Ethereum mainnet is included because, under S1, socialization reaches mainnet Aave positions even though no attacker rsETH sits there as collateral. Avalanche is omitted: rsETH is listed but exposure is sub-$100 in both scenarios.
Dashed line — Aave Umbrella coverage capacity (aWETH staked, net of cooldown).
Affected protocols
| Protocol | Assets paused | Status | Chains | rsETH exposure | Source / updated |
|---|---|---|---|---|---|
| Aave V3 | rsETH (frozen); WETH reserves frozen | partial | 5 | yes | x.com · 2026-04-18 07:30 UTC |
| Aave V4 | rsETH (frozen) | reduce-only | 1 | yes | x.com · 2026-04-18 08:00 UTC |
| Morpho | rsETH markets; MORPHO OFT (Arbitrum) | paused | 3 | yes | app.morpho.org · 2026-04-18 08:15 UTC |
| Sky | rsETH PSM routes | paused | 1 | yes | forum.sky.money · 2026-04-19 02:00 UTC |
| Jupiter Lend | rsETH isolated market | paused | 1 | yes | jup.ag · 2026-04-18 12:00 UTC |
| Kelp DAO | rsETH OFT bridging | paused | 10 | yes | kelpdao.xyz · 2026-04-18 09:00 UTC |
| Ethena | LayerZero OFT bridges (mainnet) | operational | 1 | — | ethena.fi · 2026-04-18 14:00 UTC |
| ether.fi | weETH, eETH, Liquid vaults (ETH/BTC/USD), sETHFI, eBTC | operational | 1 | — | ether.fi · 2026-04-18 14:00 UTC |
| TRON DAO | TRX LayerZero OFT | paused | 1 | — | trondao.org · 2026-04-18 14:00 UTC |
| Curve Finance | CRV (BNB, Sonic, AVAX, Fantom, Etherlink, Kava); crvUSD fast bridge | partial | 6 | — | curve.fi · 2026-04-18 14:00 UTC |
| BitGo / WBTC | Wrapped BTC OFT | paused | 1 | — | bitgo.com · 2026-04-18 14:00 UTC |
| River | satUSD & RIVER | paused | 4 | — | — · 2026-04-18 14:00 UTC |
| Pudgy Penguins (PENGU) | PENGU OFT bridges | paused | ? | — | — · 2026-04-18 14:00 UTC |
| Agora (AUSD) | LayerZero OFT bridges | partial | 3 | — | — · 2026-04-18 14:00 UTC |
| f(x) Protocol | LayerZero OFT (mainnet) | paused | 1 | — | — · 2026-04-18 14:00 UTC |
| Matrixdock | XAUm cross-chain bridges | paused | ? | — | — · 2026-04-18 14:00 UTC |
| ApeCoin | LayerZero bridges | paused | ? | — | — · 2026-04-18 14:00 UTC |
| Euler Labs | EUL LayerZero OFT | paused | ? | — | — · 2026-04-18 14:00 UTC |
| Katana | OFT path on Vaultbridge (2/3 DVN) | partial | ? | — | — · 2026-04-18 14:00 UTC |
| Orderly Network | LayerZero DVN (upgrading) | operational | 5 | — | — · 2026-04-18 18:00 UTC |
| mETH Protocol | mETH & cmETH OFT + withdrawals | paused | 1 | — | — · 2026-04-18 14:00 UTC |
| Solv Protocol | LayerZero OFT (ETH ↔ Corn/Bera/Starknet/Rootstock) | paused | 5 | — | — · 2026-04-18 14:00 UTC |
| MOCA Foundation | $MOCA OFT bridge | paused | ? | — | — · 2026-04-18 14:00 UTC |
| Re | LayerZero OFT bridges | paused | ? | — | — · 2026-04-18 14:00 UTC |
| Avant | LayerZero OFT (Movement) | paused | 1 | — | — · 2026-04-18 14:00 UTC |
| Beefy | LayerZero bridge | partial | ? | — | — · 2026-04-18 14:00 UTC |
| Flare | FXRP OFT rail | operational | 5 | — | — · 2026-04-18 14:00 UTC |
| Lombard | LBTC LayerZero routes (Solana ↔ ETH) | partial | 2 | — | — · 2026-04-18 14:00 UTC |
| USDT0 | USDT0 OFT bridging | operational | ? | — | — · 2026-04-18 14:00 UTC |
| infiniFi | LayerZero OFT bridge | paused | ? | — | — · 2026-04-18 14:00 UTC |
| Suilend | LayerZero-issued tokens (WBTC) | paused | 1 | — | — · 2026-04-18 14:00 UTC |
| Kamino | USDS, LBTC, FBTC (reduce-only) | reduce-only | 1 | — | — · 2026-04-18 14:00 UTC |
| Swell Network | swETH, rswETH, SWELL, rSWELL + Nucleus (monitoring) | partial | 3 | — | swellnetwork.io · 2026-04-18 14:00 UTC |
| Frax Finance | Cross-chain transfers (3/3 DVN) | operational | ? | — | frax.finance · 2026-04-18 14:00 UTC |
Sources & further reading
- Arbitrum DAOSecurity Council emergency actionforum.arbitrum.foundation/t/security-council-emergency-action-21-04-2026/30803
- Aave GovernanceGovernance incident reportgovernance.aave.com/t/rseth-incident-report-april-20-2026/24580