Frontier 操作码 SUICIDE 触及大型合约上过多的存储值 (CVE-2023-45130)
CVE编号
CVE-2023-45130利用情况
暂无补丁情况
N/A披露时间
2023-10-13漏洞描述
Frontier是Substrate的以太坊兼容层。在提交commit aea528198b3b226e0d20cce878551fd4c0e3d5d0之前,在合约执行结束时,当操作码SUICIDE标记要删除一个合约时,软件使用`storage::remove_prefix`(现在已重命名为`storage::clear_prefix`)来删除与之关联的所有存储。这是一个通过WebAssembly边界的单个IO原语调用。对于大型合约,该调用(未提供`limit`参数)可能会很慢。此外,对于平行链,要删除的所有存储将成为PoV的一部分,这很容易超过中继链PoV大小限制。另一方面,Frontier的维护人员只对操作码SUICIDE收取固定费用。维护人员认为此问题的严重程度很高,因为攻击者可以在一个平行链上创建一个带有大量存储值的合约,然后调用合约上的操作码SUICIDE。如果该交易进入平行链块,平行链将停滞,因为PoV大小将超过中继链的限制。对于XCM交易,这尤其是个问题,因为它们无法跳过。提交commit aea528198b3b226e0d20cce878551fd4c0e3d5d0包含了修复此问题的补丁。对于平行链,建议尽快进行紧急运行时升级。对于独立链,影响较小,因为该问题主要影响PoV大小。建议尽快进行正常运行时升级。目前没有已知的解决方法。解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。受影响软件情况
# | 类型 | 厂商 | 产品 | 版本 | 影响面 | ||||
1 | |||||||||
---|---|---|---|---|---|---|---|---|---|
运行在以下环境 | |||||||||
应用 | parity | frontier | * | Up to (including) 0.1.0 |
- 攻击路径 网络
- 攻击复杂度 低
- 权限要求 无
- 影响范围 未更改
- 用户交互 无
- 可用性 高
- 保密性 无
- 完整性 无
CWE-ID | 漏洞类型 |
CWE-770 | 不加限制或调节的资源分配 |
Exp相关链接

版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
评论