All vulnerabilities
CRITICALWeb3exploited in the wildcurated

WEB3-KELPDAO-LAYERZERO-2026

Web3 · Ethereum · KelpDAO / rsETH (LayerZero bridge)

Summary

On April 18, 2026, North Korea's Lazarus Group drained about 116,500 rsETH (roughly $292 million) from KelpDAO's LayerZero-based bridge, the largest DeFi exploit of the year. No smart contract was broken; the contracts did exactly what they were written to do. The attack was against the bridge's off-chain verification. rsETH's LayerZero channel was configured to trust a single verifier (a 1-of-1 DVN), so the attackers compromised LayerZero's internal RPC nodes, knocked out the honest external node with a denial-of-service flood, and forced that single verifier to attest to a cross-chain message that never really happened. The Ethereum side then released unbacked rsETH from escrow, leaving wrapped rsETH stranded across more than twenty chains and triggering a bank-run across DeFi.

How to fix it

  • Never run 1-of-1 verification on a value-bearing bridge; require X-of-N attestation from independent DVNs run by different entities so one compromised verifier cannot authorize a release.
  • Make verification fail closed: if the honest data path is lost (for example to a denial-of-service flood), halt rather than failing over to whatever node is still reachable.
  • Cross-reference RPC responses across multiple independent providers and treat any mismatch as an attack signal; run your own nodes for sensitive verification.
  • Monitor cross-chain invariants, not just per-transaction validity; alert when an escrow release has no matching source-chain burn.

How to avoid it in your code

  • Treat deployment-time configuration (DVN sets, verifier thresholds, RPC dependencies) as a live attack surface that audits of contract code do not cover, and revisit it as the protocol evolves.
  • Harden the human and infrastructure layer: the root entry here was a phished developer and stolen session keys, so protect session-key handling and infrastructure access as tier-0.
  • Diversify and isolate verifier and RPC infrastructure so a single cloud compromise cannot poison the data feeding consensus.
  • Add independent monitoring and timelocks on large escrow releases so a forged message cannot drain funds instantly.

Advisory details

How it happened

LayerZero is a cross-chain messaging layer. Before a destination contract acts on a message, a configured set of Decentralized Verifier Networks (DVNs) must independently attest that the source-chain event really occurred. The security model is X-of-N: require several independent verifiers so no single one can lie. rsETH was configured 1-of-1, a single required verifier (the LayerZero Labs DVN), which made that one verifier a total single point of failure. rsETH itself uses a lock-box model: Ethereum holds the canonical rsETH in escrow while wrapped versions circulate on layer-2 chains. To move value back to Ethereum, the wrapped token is burned on the source chain, the DVN verifies the message, and the Ethereum adapter releases an equal amount from escrow.

The attackers spent six weeks inside before striking. Around March 6 they socially engineered a LayerZero developer and harvested session keys, pivoting into LayerZero's RPC cloud. On April 18 they memory-patched two internal RPC nodes to return forged data while still looking healthy to monitoring, then hit the honest external node with a denial-of-service flood. With the honest path gone, the DVN failed over to the two compromised nodes, which reported a phantom rsETH burn on a layer-2 chain that never happened. The single 1-of-1 verifier signed the fraudulent message as valid, and Ethereum's adapter dutifully released 116,500 rsETH from escrow to the attacker, fully unbacked.

The damage

The 116,500 rsETH (about 18 percent of supply) left the Ethereum escrow empty while wrapped rsETH kept circulating on more than twenty layer-2 chains with nothing behind it, a backing crisis rather than a simple price depeg. Lending markets froze rsETH within hours; the attacker had also pledged stolen rsETH as Aave collateral, leaving roughly $177 million to $190 million of bad debt. Around $14 billion fled DeFi in the panic and AAVE fell about 10 percent. It was not a total loss: KelpDAO's contract pause blocked a second attempt worth about $95 million, and the Arbitrum Security Council froze 30,766 ETH with law enforcement. A "DeFi United" coalition backstopped rsETH while KelpDAO re-collateralized in tranches (May 13 and May 25) and reopened the bridge.

Who was behind it

LayerZero attributed the attack to Lazarus Group, specifically the TraderTraitor sub-cluster (also tracked as UNC4899), with high confidence corroborated by Mandiant and CrowdStrike. The pattern is signature Lazarus: socially engineer a developer, compromise infrastructure rather than contract code, then launder cross-chain. It places this alongside the group's other infrastructure and social-engineering heists, including Ronin, Bybit, Radiant Capital, and Drift. A public blame war followed: LayerZero first framed 1-of-1 as KelpDAO's choice (a downgrade from 2-of-2), while KelpDAO said 1-of-1 was LayerZero's default onboarding recommendation, used by nearly half of active LayerZero contracts at the time. LayerZero ultimately apologized and accepted fault.

Why it still matters

The headline is that an audit would not have helped: as OpenZeppelin put it, $292 million was lost with zero bugs found. Every transaction was individually valid; the broken invariant, releasing escrow with no matching burn, existed only across chains and was invisible to single-chain monitoring. The single point of failure was a configuration choice, not a line of Solidity, which is why it belongs in the same family as the bridge hacks at Wormhole, Nomad, and Poly Network: cross-chain message verification is the real attack surface, and a single trusted verifier or RPC source is a catastrophe waiting to happen. In response, the LayerZero Labs DVN now refuses to act as the sole signer on any channel and enforces a minimum security baseline across the ecosystem.

References

Related vulnerabilities

All Web3 →