As carteiras quentes da Binance perderam cerca de US$ 6,28 bilhões em 8 blockchains hoje. US$ 6,07 bilhões saíram nos primeiros 55 minutos, e o invasor continuou esvaziando repetidamente uma carteira Ethereum por mais duas horas.

Desde então, Tether, Circle, Ripple, Paxos, World Liberty e Binance congelaram cerca de US$ 2,80 bilhões. Cerca de US$ 3,27 bilhões ainda podem ser movimentados, principalmente em BTC e ETH.

Rastreei tudo na blockchain, incluindo como o invasor correu para agir antes dos congelamentos 🧵

De onde vieram os US$ 6,28 bilhões, aos preços de 20:24 UTC:

• Ethereum: US$ 3,74 bilhões

• Bitcoin: 18.270,2 BTC, US$ 1,47 bilhão

• Tron: 612,7 milhões de USDT + 46,4 milhões de TRX, US$ 627,5 milhões

• XRP 233.5M XRP, $296.5M

• Solana 970,522 SOL, $96.1M

• Arbitrum 8,426 ETH + 74.6M ARB, $31.8M

• Avalanche 1.81M AVAX + 8.41M USDt, $24.3M

• Optimism 44.2M OP, $4.8M

Ethereum, $3.74B, saiu em cinco partes:

• 20:24:23, uma chamada a sweep() na Binance 14: 167,464.25 ETH, 1.615B USDT e outros 61 tokens. $2.53B

• 20:41 e 20:59, uma carteira inteligente da Binance que confia na Binance 14: 780M + 43M USDC. $822.6M

• 20:24:47, a Binance 16 assina 9 transferências diretamente para o atacante: 28,005.6 ETH, 55.7M USDT, 25.9M RLUSD, 84.5 WBTC, 820k UNI, 1,199 XAUt, 18.8M ENA, 304.6k LINK, 583.6B PEPE. $174.2M

• 21:04 e 21:44, duas novas varreduras da Binance 14: 2,070 ETH e 204.3M USDT. $209.6M

• 22:39, uma última varredura para uma carteira nova: 128.5 ETH e 122 tokens de baixo valor. ~$0.5M

Por ativo: USDT $1.87B, USDC $823M, ETH $457M (197,668 ETH), RLUSD $88.5M, wBETH $76.8M, XAUt $50.5M, UNI $49.6M, ENA $44.7M, PEPE $40.1M, LINK $29.6M, USD1 $27.8M e cerca de 50 tokens menores.

Os preparativos começaram no dia anterior. Em 28 de outubro, às 07:39 UTC, a carteira principal do atacante, 0x7c8601d4645b93cea45f71e118a729332e6b5ca0, retirou seus primeiros 0.1 ETH do Tornado Cash. Seguiram-se mais duas retiradas. Depois, uma segunda carteira retirou 1 ETH do Tornado e o transferiu para a primeira às 18:20 de 29 de outubro.

Em 29 de outubro, às 02:28, implantaram um contrato de varredura. Das 13:51 às 16:47, fizeram ensaios com as próprias carteiras: delegaram usando EIP-7702, testaram a varredura de USDT e USDC e retiraram os fundos. Às 15:59, lançaram a v2 com uma função de chamada genérica, a que mais tarde retiraria 823M USDC.

20:04:52 UTC, a primeira tentativa falha. A carteira de XRP da Binance envia 42,750,000.1 RLUSD ao atacante, mas a conta dele na XRP ainda não existe, então a transação é devolvida.

8 segundos depois, 185,017,485.5 XRP é transferido e cria a conta. Mais quatro carteiras de XRP da Binance são esvaziadas até às 20:09.

Então, o ataque se espalha em cascata:

20:10 Solana, 965,455.1 SOL em uma transação

20:18 Optimism, 44.2M OP

20:20 Bitcoin, 18,270.2 BTC em 11 transações, divididos em lotes de 1,000 BTC no mesmo bloco

20:20 a 20:22 Tron, 612.7M USDT + 46.4M TRX

20:30 a 20:35 Arbitrum e Avalanche

Ethereum mostra como aconteceu. Às 20:20:59, o atacante enviou uma transação com 50 autorizações EIP-7702, todas assinadas com a chave da Binance 14, para nonces de 18,914,775 a 18,914,824.

A própria Binance 14 havia usado 18,914,775 às 20:17:47, então as autorizações foram assinadas minutos antes de serem usadas.

A transação com nonce 18,914,809 correspondeu. A própria transação da Binance 14 no mesmo bloco usou 18,914,808 e, a partir daí, a Binance 14 executou o código do atacante.

Às 20:24:23, uma única chamada a sweep() retirou 167,464 ETH e 1.615B USDT da carteira. 24 segundos depois, a Binance 16 assinou 9 transferências diretamente para o atacante. Às 20:41 e às 20:59, o atacante usou a Binance 14 para retirar 823M USDC de uma carteira inteligente da Binance que confia nela.