当前位置: 首页 > news >正文

20260109 - TRU 协议攻击事件分析:买得够多免费送了喂!

20260109,ETH 链上的 TRU 协议遭受了黑客攻击,损失约 2600 万美元。漏洞原因是计算购买 TRU 代币所需要的 ETH 数量的计算公式设计存在缺陷,购买大量 TRU 代币时会因为精度丢失而得到 0 值,使得攻击者可以以 0 ETH 购买大量的 TRU 代币,最后抛售完成获利。

  • TX:https://app.blocksec.com/explorer/tx/eth/0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014

Trace 分析

  1. 黑客调用 buyTRU() 函数以零成本购入大量的 TRU 代币
  2. 然后调用 sellTRU() 函数卖出所有 TRU 代币完成获利

随后攻击者利用漏洞以零或极低成本的价格购买 TRU 代币后出售的流程重复多次。

代码分析

TRU 合约是一个代理合约:0x764C64b2A09b09Acb100B80d8c505Aa6a0302EF2

其具体的逻辑逻辑合约为:0x18ceDF1071EC25331130C82D7AF71D393Ccd4446

由于逻辑合约并没有开源,所以接下来会采用 dedaub 反编译 + 人工校正的方式分析项目的业务逻辑。

  • 逻辑合约的反编译地址:https://app.dedaub.com/ethereum/address/0xc186e6f0163e21be057e95aa135edd52508d14d3/decompiled

在 buyTRU() 函数中,会根据输入的 TRUAmount 参数值计算所需要的 ETH 数量,并检查 msg.value 的值是否为相等。通过检查后,会给用户 mint TRUAmount 数量的 TRU 代币。

其问题就出在计算 ETH 数量的 TRUtoETH() 函数上,其反编译的内容如下,根据输入的 TRUAmount 值进行一系列的计算。

通过 solidity 重写这个函数,得到以下的内容。其中 _setParameters 的值为 75,代表 75% 的一个比例。

/* by 01022.hk - online tools website : 01022.hk/zh/jianfan.html */ function TRUtoETH(uint256 TRUAmount) private view returns (uint256) { uint256 totalSupply = TRU.totalSupply(); // numerator: (100 - 75) * totalSupply² = 25 * totalSupply² uint256 numerator = (100 - _setParameters) * totalSupply * totalSupply; // denominator: 100 * TRUAmount * _reserve * (TRUAmount + 2 * totalSupply) uint256 denominator = 100 * TRUAmount * _reserve * (TRUAmount + 2 * totalSupply); return numerator / denominator; }

由上面的代码分析可得,当 _setParameters,totalSupply 和 _reserve 为固定值时,传入的参数 TRUAmount 越大,分母就越大,返回值就会相应的变小。而当分母大于分子时,由于 solidity 精度丢失的特性,返回值将会为 0。也就是说:

当 TRUAmount 的值非常大,当前的计算公式在计算所需要提供的 ETH 数量时,会由于 solidity 的精度丢失返回 0 值。

这样,攻击者就完成了攻击的第一个步骤:以零或极低成本的价格购买 TRU 代币。

随后就是正常使用 sellTRU() 函数卖出所有 TRU 代币完成了获利。

http://www.jsqmd.com/news/225601/

相关文章:

  • HY-MT1.5混合语言识别优化:方言特征提取技术
  • Matlab/Simulink中基于光伏和蓄电池的三端口
  • Qwen3-VL模型监控指南:资源用量可视化,成本不再失控
  • HY-MT1.5-1.8B语音翻译集成:ASR+MT联合部署案例
  • HY-MT1.5为何能超越商业API?开源模型性能评测数据揭秘
  • 为什么HY-MT1.5部署总失败?GPU适配问题保姆级教程解析
  • HY-MT1.5部署必看:网页推理功能开启全流程步骤说明
  • 混元翻译1.5模型实战:多语言内容创作助手
  • AI本地化趋势前瞻:HY-MT1.5多语言翻译模型落地实战
  • Qwen3-VL开箱即用镜像:3步完成部署,比本地快5倍
  • HY-MT1.5-7B混合语言翻译问题解决方案
  • 解读具身智能系统为什么必须“在约束下可行”
  • HY-MT1.5-7B科研协作翻译:LaTeX文档格式保留实战
  • vs 2022 免费下载地址!VS2022 C++ 安装程序,免费
  • 视觉模型性价比之选:Qwen3-VL按小时付费,灵活可控
  • 视觉AI新选择:Qwen3-VL开箱即用,告别环境配置噩梦
  • 大模型智能体的记忆机制全解析:从形式-功能-动态三维度解锁AI智能体核心能力
  • 混元翻译1.5实战:多语言OCR识别后处理
  • 2026年十大企业商旅平台排行榜,权威解析主流企业商旅平台选型指南
  • HY-MT1.5-1.8B性能调优:批处理大小对翻译速度影响实测
  • Qwen3-VL-WEBUI企业试用包:10小时仅需10元
  • Qwen3-VL私有化部署方案:云端GPU按需启用,数据不出公司
  • RLHF实战:解决大模型“幻觉“问题,提升Text-to-SQL准确率53%
  • HY-MT1.5-7B在K8s集群部署?生产级编排方案
  • Qwen3-VL模型监控技巧:云端自动伸缩,流量高峰不慌
  • HY-MT1.5-1.8B如何压缩?量化后边缘部署步骤详解
  • Qwen3-VL多图理解教程:学生党福音,5块钱玩转视觉AI
  • 腾讯开源翻译模型:HY-MT1.5API设计规范
  • 全球大模型第一股智谱AI上市,GLM-4.6技术深度解析与商业模式全解
  • AI智能实体侦测服务部署卡顿?高性能推理优化实战案例