一个计算漏洞,让Truebit被盗8535枚ETH
原文标题:《Truebit Protocol被盗2644万美元合约漏洞分析》
原文来源:ExVul Security
2026 年 1 月 8 日,Truebit Protocol 协议被黑客攻击,损失 8,535.36 ETH(约 2644 万美元),Truebit Protocol 官方于次日凌晨发文证实。ExVul 安全团队对本次攻击事件进行了详细的漏洞分析,分析结果如下:
攻击流程
攻击者地址:
0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50
攻击交易 hash:
0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
攻击者通过循环 4 轮调用 getPurchasePrice→0xa0296215→0xc471b10b 的交易完成攻击,以第一次循环为例分析。
1. 攻击者先调用 getPurchasePrice(240442509453545333947284131) 函数,返回 0。

2. 攻击者调用 0xa0296215(c6e3ae8e2cbab1298abaa3) 函数,同时 msg.value 为 0。最后成功铸造 240442509453545333947284131 枚 TRU。

3. 攻击者调用 0xc471b10b(c6e3ae8e2cbab1298abaa3) 函数。最后销毁 240442509453545333947284131 枚 TRU,获得 5105.06 枚 ETH。
攻击逻辑分析
通过了解上述攻击流程,能明显发现 getPurchasePrice 函数与 0xa0296215 函数的逻辑存在问题。下面开始深入分析(由于合约未开源,下面的代码均为反编译代码)。


通过比较两个函数的共同点,我们可以发现 0x1446 函数的用于获取购买指定数量的 TRU 需要多少 ETH。显然 0x1446 函数逻辑存在问题,导致 ETH 计算错误。下面详细分析 0x1446 函数中的逻辑。

观察 0x1446 函数中的逻辑,因为最后的计算结果 v13 == 0,所以一定是上文中的计算逻辑出现了问题。需要了解的是 0x18ef 功能与_SafeMul 相同,因此问题出在使用原生加分 v12 + v9(合约版本为 ^0.6.10,因此无溢出检查)。
v12 与 v9,分别表示:
通过上述分析,攻击者的攻击思路是通过输入巨大的 _amountIn,使 v12 + v9 溢出成一个很小的值,最后使 (v12 + v9) / v6 == 0。
总结
Truebit Protocol 本次被攻击事件的根本原因在于其代币购买价格计算逻辑存在严重的整数溢出漏洞。由于合约使用的是 Solidity ^0.6.10 版本且未对关键算术运算进行安全检查,最终造成 8,535.36 ETH 的重大损失。目前新版本的 Solidity 本身已经缓解了溢出漏洞。这起攻击事件应该是黑客在利用 AI 自动化地去扫描一些已经上线的老的 DeFi 协议发现的漏洞(包括前一段时间的 Balancer 以及 yETH 攻击),我们认为此类利用 AI 攻击一些老 DeFi 协议的攻击事件近期会越来越多,所以建议项目方对合约代码能进行新的安全审计,如果发现漏洞,需尽快升级合约或者进行资产转移,并且做好链上监控,及时发现异常,把损失降到最低。
本文来自投稿,不代表 BlockBeats 观点。
猜你喜欢

矿企大迁徙:有人已手握128亿美元AI订单

3月6日市场关键情报,你错过了多少?

a16z:稳定币的真正机会,不在颠覆而在补缺

对话Ray Dalio:为什么我只信黄金,不信比特币?

谁赚走了AI时代的钱?HALO资产交易必看的投资清单

华尔街空头盯上以太坊:Vitalik知情抢跑,Tom Lee还执迷不悟

盗了pump.fun 200万美元,被判6年监禁,他选择「自爆」

6%的年化,马斯克向传统银行宣战

36年,4场战争,1个剧本:资本如何在冲突中定价世界?

矿企大迁徙:有人已手握 128 亿美元 AI 订单

纽交所母公司战略投资 OKX:250 亿美元估值背后的意图

早报 | 纽约证券交易所母公司投资 OKX;摩根士丹利向 Core Scientific 提供 5 亿美元贷款;Western Union 与 Crossmint 合作推出稳定币 USDPT

这些曾经的加密 builder,走向了全球最火的 AI 项目

以太坊大修 2026 蓝图,这次要抛下“渐进主义”

以太坊今年最重要的Glamsterdam升级,有哪些看点?

3月6日关键市场信息差,一定要看!|Alpha早报

卖掉英伟达,买入发电厂,27岁另类AI投资人一年赚了50亿美金
