BitsLab 旗下 TonBit 再次发现 TON 虚拟机漏洞:RUNVM 指令或导致智能合约执行环境污染
作者:BitsLab
BitsLab 旗下 TonBit 再次于 TON 虚拟机(TVM)深层代码里挖出一枚“隐形炸弹”——RUNVM 指令非原子状态迁移漏洞。攻击者可借助子虚拟机耗尽 gas 的瞬间,污染父虚拟机的库(libraries)并诱发后续调用失败,最终导致依赖库完整性的合约出现异常行为。
下面我们保留技术细节原文,为开发者呈现漏洞发现与验证的完整过程,帮助社区深入理解该问题,并提高对类似风险的防范意识。
以下是漏洞详述:
TVM 中的 RUNVM 指令可能污染调用者状态并导致库不可用。在 'RUNVM' 指令代码中发现新的漏洞。该漏洞允许污染调用者的状态。相关代码片段如下:
上述代码负责启动子虚拟机。其功能是将当前VmState中的'log'和'libraries'移动到新的VmState对象'new_state'中,然后用'new_state'替换当前VmState。
问题在于该操作并非真正的原子操作。在执行'*this = std::move(new_state);'语句之前,虚拟机可能因gas耗尽而中止进程,导致'new_state'未能成功替换当前状态。此时'libraries'可能已被移出,使得子虚拟机的库处于被清除(移动)状态。
由于RUNVM指令通过isolate_gas参数实现了子虚拟机与父虚拟机之间的gas消耗隔离,这会引发以下场景:
即使子虚拟机触发gas耗尽异常,父虚拟机仍保留足够的gas继续执行。但由于失败的状态转移过程中子虚拟机已经移动/清除了'libraries',导致后续依赖'libraries'的操作都将失败。这种情况会使得某些假定库完整性的合约出现预期之外的行为。
漏洞验证(PoC验证)
我们通过以下测试用例成功复现了该漏洞:
关键测试修改说明:
为了便于本地观察库状态,我们修改了NOP指令以强制注册一个库条目:
复现步骤:
1)将此测试用例添加到 crypto/test/vm.cpp 文件中
2)运行 test-vm 可执行程序
3)观察 XLOAD 指令执行时因空库而抛出的异常
预期行为:
NOP指令执行后:库中包含1个条目
RUNVMX指令执行后:尽管父虚拟机继续运行,但库变为空状态
XLOAD指令执行失败并抛出异常
这充分证明了非原子性状态转移与gas隔离机制共同作用时,会产生违反执行上下文完整性的不一致状态。
本次发现再次体现了 BitsLab 旗下 TonBit 在 TON 生态安全研究中的深厚实力。我们已第一时间将技术细节与缓解方案提交给 TON 基金会,并协助其完成修复。建议所有开发者在官方补丁发布后及时更新依赖库;同时在自研合约中加入更严谨的库完整性验证与 gas 管理逻辑,以防止类似问题被恶意利用。BitsLab 将继续秉持“负责任披露”原则,携手社区共同筑牢 Web3 安全防线。
关于BitsLab
BitsLab 是一家致力于守护和构建新兴 Web3 生态系统的安全组织,愿景是成为备受行业和用户尊敬的 Web3 安全机构。旗下拥有三个子品牌:MoveBit、ScaleBit 和 TonBit。
BitsLab 专注于新兴生态系统的基础设施开发与安全审计,覆盖但不限于 Sui、Aptos、TON、Linea、BNB Chain、Soneium、Starknet、Movement、Monad、Internet Computer 和 Solana 等生态。同时,BitsLab 在审计多种编程语言方面展现了深厚的专业能力,包括 Circom、Halo2、Move、Cairo、Tact、FunC、Vyper 和 Solidity等。
BitsLab 团队汇聚了多位顶级漏洞研究专家,他们曾多次荣获国际 CTF 奖项,并在 TON、Aptos、Sui、Nervos、OKX 和 Cosmos 等知名项目中发现了关键漏洞。
关于 TonBit
TonBit 作为 BitsLab 的核心子品牌,是 TON 生态系统内的安全专家和早期建设者。作为 TON 区块链的主要安全保障提供商,TonBit 专注于全面的安全审计,包括 Tact 和 FunC 语言的审计,确保基于 TON 的项目具备完整性和弹性。迄今为止,TonBit 已成功审计了包括 Catizen、Algebra、UTonic 等多个知名项目,并发现了多个关键漏洞,展现了我们在区块链安全领域的卓越能力。此外,TonBit 还成功举办了 TON CTF 比赛,吸引了众多参与者并收获了广泛关注,进一步巩固了其在 TON 生态中的安全专家地位。未来,TonBit 将继续为区块链安全保驾护航,推动技术和生态的持续发展。
(责任编辑:基金优选)
宜人贷已还清,再贷款审核需要什么条件吗,有人了解吗?
10月31日富国致弘量化选股股票A净值下跌0.10%,近1个月累计下跌1.68%
平顶山今天什么天
10月31日东吴新趋势价值线混合净值下跌0.42%,近1个月累计上涨5.21%
海拉尔穿什么衣服好
- 10月31日中欧匠心两年持有期混合C净值下跌0.83%,近1个月累计下跌7.22%
- 10月31日长盛航天海工混合A净值下跌0.07%,今年来累计下跌1.09%
- 10月31日中欧光熠一年持有混合C净值下跌0.57%,近1个月累计上涨0.25%
- 10月31日长城优选招益一年持有混合C净值增长0.20%,今年来累计上涨2.27%
- 10月31日中欧嘉选混合C净值下跌0.40%,今年来累计下跌6.65%
- 10月31日易方达新收益混合A净值下跌0.38%,近1个月累计下跌5.8%
- 10月31日农银策略价值混合净值下跌0.42%,近1个月累计下跌4.68%
- 10月31日兴证全球兴晨六个月持有混合C净值下跌0.01%,近6个月累计上涨0.29%
-
据销售“极藻5s”的上海心知元电子商务有限公司负责人介绍,该产品每个月的销量在一万盒,最旺的时候一个月能销售一万五千盒。...[详细]
-
10月31日兴全多维价值混合C净值增长1.12%,近3个月累计上涨16.58%
但当行业发展到中期、后期,要深耕下去的时候,只有专注在一个领域,你的发展才可能会更快、更好。...[详细]
-
再引伸到移动互联网服务上,印度各自为政百花齐放的国情也带来了各种挑战。...[详细]
-
10月31日易方达宁易一年持有混合A净值下跌0.27%,近1个月累计下跌1.37%
最后说一句,做号是一门生意,和黑产无关,只是太边缘化拿不上台面,一线城市的记者可以轻轻松松跑一个会然后拿500块钱的红包还嫌弃各种路远招待不周,三线城市的做号者5点下班后撸稿撸到十二点然后第二天起...[详细]
-
但是软文写作对于网站的发展又是必不可少的,如果能够坚持每周写1-2篇软文,不论是对于站长自己还是对于网站来说都是大有益处。...[详细]
-
10月31日招商中小盘混合净值下跌0.18%,近1个月累计下跌3.44%
坤鹏论认为,人有七情六欲,少了一个都会失衡不完整,就和那句名言所说的一样,人生就像心电图,一帆风顺就挂了,情绪也一样,有起有伏,敢爱敢恨,才算心理健康,否则不是傻了就是疯了! 只有品尝过痛苦,才...[详细]
-
于是创业者的任务逐渐被定义为了“改变”,要么改变世界,要么颠覆传统。...[详细]
-
10月31日嘉实互通精选股票净值下跌0.21%,今年来累计下跌0.05%
1.做分析 购物车放弃率有可能不只是商品价格或者由于消费意识不够造成的...[详细]
-
但我们当时似乎忘记了去思考:做平台,流量是关键,那我们的流量从哪儿来? 这个问题就比较大了,讲清楚这个问题,也可以专门去写本书了。...[详细]
-
10月31日汇添富文体娱乐混合A净值下跌1.17%,近1个月累计下跌4.38%
这跟我们的初衷很像,我们都是理科生,当时因为黑客精神,看一些硅谷的东西想去创业,想要去打破常规。...[详细]