#币安被盗 币安黑客操作的细节来了
黑客不知道 Binance 14 热钱包实时 nonce,于是准备了 50 份 EIP-7702 授权签名,覆盖 nonce 18,914,775–18,914,824,一次性塞进同一笔交易里碰运气。
因为热钱包每秒都在处理交易,nonce 不断变化,攻击者无法确定授权上链时哪个数字才有效。最终,50 份授权只有 1 份命中,成功接管钱包。
黑客通过 EIP-7702,把 Binance 14 的执行逻辑委托给自己提前部署的 Sweeper 合约,然后从指定操作地址调用 sweep 函数,一次性转走钱包里的 ETH 和所有 ERC-20 资产。
这个委托不会因为余额被清空而自动失效,后续只要还有资金打进这个地址,攻击者依然可以再次调用合约清扫。必须主动撤销 EIP-7702 委托,才能真正关闭这个后门。
但还有一个更值得追问的问题:
这 50 份授权签名从哪里来的?
EIP-7702 授权必须由 Binance 14 自己的控制密钥签署,攻击者不可能仅靠猜 nonce 凭空生成有效签名。
也就是说,猜 nonce 只是最后一步,真正的突破口是攻击者如何获得了热钱包的签名能力。
目前究竟是私钥泄露、签名系统被攻破,还是内部签名流程遭到滥用,仍没有明确结论。
黑客不知道 Binance 14 热钱包实时 nonce,于是准备了 50 份 EIP-7702 授权签名,覆盖 nonce 18,914,775–18,914,824,一次性塞进同一笔交易里碰运气。
因为热钱包每秒都在处理交易,nonce 不断变化,攻击者无法确定授权上链时哪个数字才有效。最终,50 份授权只有 1 份命中,成功接管钱包。
黑客通过 EIP-7702,把 Binance 14 的执行逻辑委托给自己提前部署的 Sweeper 合约,然后从指定操作地址调用 sweep 函数,一次性转走钱包里的 ETH 和所有 ERC-20 资产。
这个委托不会因为余额被清空而自动失效,后续只要还有资金打进这个地址,攻击者依然可以再次调用合约清扫。必须主动撤销 EIP-7702 委托,才能真正关闭这个后门。
但还有一个更值得追问的问题:
这 50 份授权签名从哪里来的?
EIP-7702 授权必须由 Binance 14 自己的控制密钥签署,攻击者不可能仅靠猜 nonce 凭空生成有效签名。
也就是说,猜 nonce 只是最后一步,真正的突破口是攻击者如何获得了热钱包的签名能力。
目前究竟是私钥泄露、签名系统被攻破,还是内部签名流程遭到滥用,仍没有明确结论。