Résumé
On 21 February 2025, the crypto exchange Bybit lost about $1.5 billion in ether, the largest hack in history, to North Korea's Lazarus Group. Bybit had done what custody best-practice prescribes: the funds sat in a cold wallet behind a multisig requiring several human signers. The attackers beat it anyway, not by stealing keys but by tampering with what the signers saw. Weeks earlier they had compromised a developer at Safe, the multisig-wallet provider, and slipped malicious code into the Safe web app, so that when Bybit's executives reviewed a routine transfer, the screen showed a legitimate transaction while their hardware wallets were actually signing a malicious one that handed the wallet to the attacker. It is the defining lesson that a multisig is only as trustworthy as the screen you approve it on, and that blind-signing is the modern crypto catastrophe.
How it happened
Bybit's cold wallet was a multisig built on Safe (formerly Gnosis Safe), needing several executives to approve any movement. Rather than attack the keys, Lazarus ran a supply-chain attack on Safe itself. Around 4 February 2025 they compromised a Safe developer's Mac through a malicious Docker project, and used that access to inject malicious JavaScript into the Safe web app served from its cloud storage (an AWS S3 bucket behind app.safe.global). The code was scoped to fire only for two specific addresses: Bybit's cold-wallet contract and one the attackers controlled.
So when Bybit's three signers reviewed what looked like a routine transfer from cold to hot storage, the Safe interface showed correct, legitimate details on screen, while the data sent to their hardware wallets was different. Because the signers approved without their devices decoding the real payload, blind-signing, they authorised a delegatecall (operation type 1) to an attacker contract. Executing in the wallet's own storage context, that contract overwrote storage slot 0, the pointer to the wallet's implementation, repointing it to attacker logic that exposed sweep functions. The attacker then drained the entire balance: 401,347 ETH, about $1.46 billion at the time and climbing with ether's price toward the $1.5 billion headline. Roughly two minutes after the transaction, the attackers re-uploaded clean JavaScript to the Safe bucket to erase the evidence. The executives believed they were moving operational funds; they were signing away the vault.
The aftermath
The loss is the largest theft of any kind in history, crypto or otherwise. Crucially, Bybit survived it: it closed the gap within about 72 hours, sourcing roughly 447,000 ETH (around $1.2 billion) through emergency loans and large deposits and declaring itself fully solvent, all while processing more than 350,000 withdrawal requests through the bank run. The FBI and blockchain analysts attributed the theft to Lazarus (also tracked as TraderTraitor and APT38). The laundering was fast but neither instant nor invisible: over roughly ten days Lazarus moved the funds, swapping about 72% (some 361,000 ETH, around $900 million) through the THORChain protocol; by Bybit's own accounting about 77% remained traceable, around 20% (~$280 million) had gone dark, and roughly 3% had been frozen. Bybit launched a bounty site (LazarusBounty.com) offering a share of any funds recovered. Across 2025, North Korea-linked actors accounted for the majority of all cryptocurrency stolen worldwide.
Why Bybit still matters
Bybit shattered the comfortable belief that cold storage plus multisig is enough. The keys were never stolen. The supply-chain attack on the signing interface made trusted humans approve a malicious transaction they could not actually see. The core vulnerability is blind-signing: approving a transaction your hardware wallet cannot fully decode and display. The defences follow directly: insist on clear-signing, where the hardware device itself decodes and shows the real calldata, operation type, and target; independently simulate every multisig transaction before approval; pin and integrity-check the wallet UI; alert on any delegatecall or implementation change; and harden the entire signing supply chain, not just the keys. It was carried out by the same Lazarus Group behind Ronin, now operating at more than ten times the scale.
Comment le corriger
- Treat the signing infrastructure as compromised: move remaining funds using wallets created and signed on clean, verified systems, and rotate everything the breach could touch.
- Verify wallet-UI integrity (pinned, integrity-checked assets) before resuming any signing, since the breach was in the interface, not the keys.
- Trace and publicly flag the stolen funds immediately; speed matters, but as Bybit showed, fast tracing keeps most of it visible even when it cannot all be frozen.
Comment l’éviter
- Harden the wallet-UI supply chain: subresource integrity on hosted scripts, integrity-verified assets, and least-privilege developer access.
- Mandate clear-signing and on-device transaction parsing so signers verify calldata, operation type, and target on the hardware wallet, never blind-sign.
- Independently simulate every multisig transaction on isolated infrastructure and compare results before approval.
- Alert on or block delegatecall (operation=1) and any implementation or singleton change in multisig transactions.
- Segment and monitor signer endpoints, and require multiple independent reviews of decoded calldata through out-of-band channels.
Références
- https://www.nccgroup.com/research/in-depth-technical-analysis-of-the-bybit-hack/
- https://www.sygnia.co/blog/sygnia-investigation-bybit-hack/
- https://www.bleepingcomputer.com/news/security/lazarus-hacked-bybit-via-breached-safe-wallet-developer-machine/
- https://cointelegraph.com/news/bybit-hack-280m-untraceable-1b-trackable-thorchain-okx-exch
- https://www.chainalysis.com/blog/crypto-hacking-stolen-funds-2026/
Vulnérabilités liées
Tout Web3 →- CRITICALWEB3-KELPDAO-LAYERZERO-2026
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.
- HIGHWEB3-FRONTEND-DNS-HIJACK-2022
A frontend hijack leaves the on-chain contracts untouched but replaces the Web2 surface serving the dApp UI with a wallet-drainer clone, so no Solidity audit can catch it. The recurring pattern: attackers take over the domain registrar or DNS provider account (or a CDN/tag-manager account), repoint the domain to a cloned site, and prompt visitors to sign malicious token approvals, EIP-2612 permit signatures, or transfers. Curve Finance was hit twice: on August 9-10, 2022 its curve.fi domain was DNS-hijacked via a compromised nameserver and drained ~$570K in USDC/DAI; and again around May 12, 2025 at the registrar level, after which Curve permanently migrated to curve.finance and announced an ENS move (Convex Finance and Resupply, which depend on Curve's data feeds, suffered dependency-driven outages but were not themselves compromised). In July 2024 a mass wave hit DeFi domains registered through Squarespace, whose forced migration off Google Domains stripped 2FA: Compound's frontend redirected to an Inferno Drainer clone and 100+ protocols were exposed (Celer blocked its takeover via domain monitoring). Ambient Finance's domain was hijacked through stolen registrar credentials on October 17, 2024. Most recently, on April 14, 2026 attackers used forged identity documents to social-engineer the registrar into handing over DNS control of CoW Swap's swap.cow.fi and cow.fi domains, redirecting users to a pixel-perfect drainer clone for about 90 minutes; over $1M was taken in roughly three hours, including 219 ETH (~$750K) from a single wallet, while CoW's contracts, backend APIs, and solver network were untouched. The same bucket includes CDN-account injections (KyberSwap's September 2022 Cloudflare/Google Tag Manager compromise, ~$265K) and BGP route hijacks that swap signed bundles for drainer code.
- HIGHWEB3-CURVE-DNS-2025
On May 12, 2025, attackers hijacked Curve Finance's primary domain, curve.fi, at the registrar and DNS level and pointed visitors at a wallet-draining clone of the site. Curve's smart contracts and on-chain funds were never touched; this was a Web2 attack on the domain, the soft underbelly that no Solidity audit can protect. The nameservers for curve.fi were swapped to attacker-controlled infrastructure at the registrar (iwantmyname, the same registrar implicated in Curve's 2022 hijack), and the clone prompted users to approve malicious token transactions. On-chain analysts estimated user losses around $520,000, most of it taken in the first ninety minutes. Curve repointed the domain to neutral nameservers, then permanently migrated to curve.finance and signaled a move toward decentralized (ENS) hosting.
- CRITICALWEB3-KILOEX-2025
On April 14, 2025 the perpetuals DEX KiloEx lost about $7.5 million across BNB Chain, Base, opBNB, and Taiko to what was reported as oracle price manipulation but was really an access-control failure. KiloEx's price feed (KiloPriceFeed.setPrices) was meant to be reachable only through a keeper-gated call chain, but the top-level MinimalForwarder.execute function was publicly callable and validated an attacker-supplied signature against attacker-supplied data, letting anyone forge a trusted call that reached setPrices and write an arbitrary price. The attacker set a market price far below true value, opened a leveraged position, then set the price far above value and closed it in the same flow, extracting fabricated profit from the vault; the sequence was repeated across all four chains, with a single transaction netting $3.12M. Reporting that framed it as flash-loan oracle manipulation was imprecise: no market liquidity was moved, the price was simply written directly through the unprotected forwarder. After KiloEx offered a 10% (~$750K) whitehat bounty and no legal action, the attacker returned essentially all of the funds by April 18, 2025.
- CRITICALWEB3-RADIANT-2024
On October 16, 2024, the cross-chain lending protocol Radiant Capital lost roughly $50M (about $53M across Arbitrum and BSC) after attackers compromised the devices of at least three of its multisig signers. Initial access began September 11, 2024 via a Telegram message spoofing a trusted former contractor, delivering a ZIP with a decoy PDF that was actually a macOS application carrying INLETDRIFT backdoor malware. The malware sat between the signers' browsers and their hardware wallets, so the Safe (Gnosis) UI and Tenderly simulations displayed correct data while the signers blind-signed a malicious transferOwnership() call on the LendingPoolAddressesProvider contract; the 3-of-11 threshold was met and the attacker then upgraded the pools to a malicious implementation and drained them. Mandiant assessed with high confidence the attack was conducted by North Korea-linked UNC4736 (aka Citrine Sleet/AppleJeus), part of the Lazarus cluster. Funds were not recovered and the protocol later wound down.
- CRITICALWEB3-WAZIRX-2024
On July 18, 2024 Indian exchange WazirX lost approximately $230M (about $234.9M) from a Safe (Gnosis) 4-of-6 multisig wallet held under a custody arrangement with Liminal (five WazirX keys plus one Liminal key). The attack was a blind-signing exploit: signers reviewed benign transaction details in the manipulated Liminal interface while the payload actually signed differed, authorizing a delegatecall (function selector 0x804e1f0a) that overwrote slot0 of the Safe proxy and repointed its implementation to an attacker-controlled contract (0xef279c2ab14960aa319008cbea384b9f8ac35fc6). Once the proxy pointed to attacker logic the wallet was fully controlled without further keys, and it was drained. The theft was attributed to North Korea's Lazarus Group, later confirmed in a joint statement by the US, South Korea and Japan in January 2025. Funds were laundered via Tornado Cash; victims are being repaid through a court-approved restructuring (resumed October 2025, BitGo custody) rather than direct recovery.