跪拜 Guibai
← All articles
Hacking · Web3

Binance's $6.3B Hack: Attackers Didn't Steal Keys, They Weaponized a Signer via EIP-7702

By 米小虾 ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

The same failure pattern applies to any system with signing or tool-calling capabilities: a valid key that can be used to approve unintended operations is a security boundary, not just key storage. For engineers building wallets, exchanges, or AI agents, the lesson is that permission granularity—what a given signature is allowed to authorize—matters more than the strength of the key itself.

Summary

Binance suffered the largest crypto hack yet on October 29, 2026, with $6.3B drained from hot wallets. The official announcement found no private key leak, but the attackers had used the exchange's own valid signatures to delegate a hot wallet (Binance 14) to a contract they controlled. The technical vector was EIP-7702, which lets an EOA delegate execution to a contract via a signed authorization. The attacker submitted 50 authorizations with consecutive nonces; only one matched the wallet's current nonce, but the protocol silently skips invalid ones, so the transaction succeeded and the wallet became a sweeper. That single delegation allowed the attacker to sweep ETH, USDT, and 60 other tokens in minutes.

The attack chain started with a compromised DevOps laptop giving access to a service container that could request signatures. The signer didn't validate the semantic difference between a transfer and a delegation, so it signed what it was asked to sign. A subsequent freeze asymmetry is striking: Tether and Circle froze $1.567B USDT and $800M USDC within an hour, but 18,270 BTC (~$1.47B) could not be frozen by anyone. TRM Labs and Chainalysis attribute the attack with high confidence to North Korea's TraderTraitor group, though Binance itself has not named an attacker and no government agency has issued a formal attribution.

The article draws engineering lessons that generalize beyond crypto: treat authorization as a first-class auditable object with TTL, quotas, target whitelists, and semantic constraints; keep signer permission granularity finer than you think; detect EIP-7702 delegation cheaply via eth_getCode checking for the 0xef0100 prefix; and recognize that AI agent tool-calling loops are structurally similar to signing systems, where prompt injection is just another attempt to make the signer approve a payload it shouldn't.

Takeaways
— The attack used 50 EIP-7702 authorization signatures with consecutive nonces (18,914,775 to 18,914,824); only one hit, and the other 49 were silently skipped because EIP-7702 ignores invalid authorizations instead of reverting the transaction.
— Binance officially confirmed no wallet private key leak, but the attackers signed delegations with Binance 14's own private key, making the breach a case of key misuse, not key leak.
— Tether froze $1.567B USDT and Circle froze $800M USDC within an hour of the attack; 18,270 BTC (~$1.47B) could not be frozen by anyone.
— The attack vector was a compromised DevOps laptop granting access to a service container, which then submitted unauthorized withdrawal requests to the signing infrastructure.
— EIP-7702 allows an EOA to delegate execution to a contract by writing a 0xef0100-prefixed indicator into its code field; revocation requires a new authorization pointing to the zero address, with no time lock or admin.
— Binomial EIP-7702 detection: any delegated address shows a code field starting with 0xef0100; one eth_getCode call can check for it, and the article recommends running this check every minute on high-value vault addresses.
— Binance's total impact was ~$6.3B, with ~$3.0B frozen; the net loss is estimated by on-chain analysts at ~$3.43B, though the final number depends on recovery and the Nov 1 Proof of Reserves.
— TRM Labs attributes the attack with high confidence to North Korea's TraderTraitor group, but Binance has not named an attacker and no government agency has issued a formal attribution.
— Aave froze ~300 markets after the attacker deposited $60M USDT and borrowed 19,762 WETH (~$44.6M); the position was overcollateralized so no bad debt arose.
— The article maps the attack to AI agents: context pollution, tool calls with untrusted parameters, token-only validation, and long-lived capabilities are structural analogues.
— Total crypto losses in Q3 2026 hit $1.28B, up 56% quarter-over-quarter, before this event.
— The article recommends that any authorization request with 50 consecutive nonces should be an automatic red flag, as it signals blindness about the current nonce.
— Stablecoin issuers froze funds faster than Binance's own emergency response, and the article notes this 'emergency brake' is controlled by private companies, not the protocol.
— Binance's SAFU fund holds ~$1.157B and total reserves are ~$165.4B; CZ's rough gap is ~$2B after frozen and SAFU contributions.
— The delegation remained active for 3.5 hours after the initial transfer, allowing the sweeper to continue draining subsequent deposits until it was cleared.
— Binance's PoR from Oct 1 showed Binance 14 as part of assets backing user balances; ICRYPEX estimates ETH coverage may drop from 100% to ~94%, but this is a third-party estimate, not official.
Conclusions

The silent-skip design for invalid EIP-7702 authorizations turned a blind spray of 50 signatures into a one-shot hit; the tolerance that helps batch onboarding also amplifies abuse, and this is a textbook example of a design tradeoff becoming a security amplifier.

The freeze asymmetry reveals that the 'emergency brake' in crypto is effectively held by a handful of private issuers, not by the protocol itself, and that power is indiscriminate—it can freeze any holder, not just criminals.

The shift from key leak to key misuse means the traditional threat model of custody security (HSM, MPC, cold storage) is insufficient; the real boundary is the semantic validation of what a signature is allowed to authorize.

Attributing to TraderTraitor with 'high confidence' while Binance and no government agency officially name a culprit shows the gap between on-chain intelligence and legal or operational accountability.

The mapping to AI agent tool-calling is not a metaphor but a structural identity: a tool-calling loop is a signer that decides what to call based on context, and prompt injection is an attempt to make it sign a payload it shouldn't—so agent systems need the same TTL, quota, whitelist, and semantic constraints.

Concepts & terms
EIP-7702
An Ethereum improvement proposal that allows an externally owned account (EOA) to delegate its execution to a smart contract by signing an authorization, which writes a delegation indicator (0xef0100 + contract address) into the EOA's code field. The account retains its address, private key, and history, but subsequent calls execute the delegated contract's code.
Key misuse vs key leak
Key leak is when the private key is exfiltrated (stolen). Key misuse is when the key remains in custody but is used to sign a payload it was never intended to sign, such as a delegation instead of a transfer. The threat model differs: defense shifts from key storage to signing-intent validation.
Delegation indicator (0xef0100)
The 23-byte prefix written into an EOA's code field after a valid EIP-7702 authorization. Any call to that address executes the implementation contract. Detection is trivial: if eth_getCode returns a value starting with 0xef0100, the account has been delegated.
SAFU fund
Binance's emergency insurance fund, established in 2018, funded by a portion of trading fees. It is used to cover losses from security breaches or operational failures where user funds are affected. At the time of the hack it held roughly $1.157B in BTC.
TraderTraitor
A North Korean cyber espionage group, also known as Lazarus or a specialized unit within it, responsible for multiple crypto thefts including the 2025 Bybit hack and the 2026 Binance hack. TRM Labs and Chainalysis attribute attacks to this group with high confidence based on on-chain patterns and operational tradecraft.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗