Truebit Protocol因合约漏洞遭黑客攻击,损失高达2644万美元

防诈反诈5个月前发布 领域OK
332 0 0

 风险提示:防范以"数字货币""区块链"名义进行非法集资的风险

2026年1月8日,Truebit Protocol遭受了一次严重的黑客攻击,导致约8,535.36 ETH(约合2644万美元)的资产损失。Truebit Protocol官方在次日凌晨发布声明确认了这一事件。ExVul安全团队对此次攻击进行了深入分析,以下是详细的漏洞分析报告。

欧易
欧易(OKX)

全球三大交易所之一,注册领50U数币盲盒,币圈常用的交易平台!

币安
币安(Binance)

币安是世界领先的数字货币交易平台,注册领100U。

攻击流程

攻击者地址:

0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50

攻击交易哈希:

0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014

攻击者通过四轮循环调用 getPurchasePrice→0xa0296215→0xc471b10b 的交易完成攻击。以下以第一次循环为例进行分析。

1. 攻击者首先调用 getPurchasePrice(240442509453545333947284131) 函数,返回值为 0。

Truebit Protocol因合约漏洞遭黑客攻击,损失高达2644万美元

2. 随后,攻击者调用 0xa0296215(c6e3ae8e2cbab1298abaa3) 函数,并将 msg.value 设置为 0。最终成功铸造了 240442509453545333947284131 枚 TRU。

Truebit Protocol因合约漏洞遭黑客攻击,损失高达2644万美元

3. 最后,攻击者调用 0xc471b10b(c6e3ae8e2cbab1298abaa3) 函数,销毁了 240442509453545333947284131 枚 TRU,并获得了 5105.06 枚 ETH。

攻击逻辑分析

通过上述攻击流程可以看出,getPurchasePrice 函数与 0xa0296215 函数的逻辑存在明显问题。由于合约未开源,以下代码均为反编译结果。

Truebit Protocol因合约漏洞遭黑客攻击,损失高达2644万美元

Truebit Protocol因合约漏洞遭黑客攻击,损失高达2644万美元

通过对比两个函数的共同点,可以发现 0x1446 函数用于计算购买指定数量的 TRU 所需的 ETH 数量。显然,0x1446 函数的逻辑存在问题,导致 ETH 计算错误。以下是对其逻辑的详细分析。

Truebit Protocol因合约漏洞遭黑客攻击,损失高达2644万美元

观察 0x1446 函数中的逻辑,由于最终计算结果 v13 == 0,因此问题必然出现在之前的计算逻辑中。需要说明的是,0x18ef 函数的功能与 _SafeMul 相同,因此问题出在使用原生加法 v12 + v9(合约版本为 ^0.6.10,因此无溢出检查)。

v12 与 v9 分别表示:

Truebit Protocol因合约漏洞遭黑客攻击,损失高达2644万美元

通过上述分析可知,攻击者的思路是通过输入极大的 _amountIn 值,使 v12 + v9 溢出为一个极小的值,从而导致 (v12 + v9) / v6 == 0。

总结

Truebit Protocol 此次被攻击的根本原因在于其代币购买价格计算逻辑中存在严重的整数溢出漏洞。由于合约使用的是 Solidity ^0.6.10 版本,且未对关键算术运算进行安全检查,最终造成了 8,535.36 ETH 的重大损失。目前新版本的 Solidity 已经缓解了此类溢出漏洞。

这起攻击事件很可能是黑客利用 AI 自动化扫描一些已经上线的老 DeFi 协议发现的漏洞(例如前段时间的 Balancer 和 yETH 攻击)。我们认为,近期可能会出现更多类似利用 AI 攻击老 DeFi 协议的事件。因此,我们建议项目方对合约代码进行新一轮的安全审计,若发现漏洞,应尽快升级合约或进行资产转移,同时加强链上监控,及时发现异常,最大限度地降低损失。

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...