“360代码卫士”帮助以太坊公链发现远程 DoS 漏洞,获官方致谢
字数 1161 2025-08-18 11:37:53
以太坊Geth客户端远程DoS漏洞(CVE-2018-13432)分析报告
漏洞概述
CVE-2018-13432是一个存在于以太坊官方客户端Geth(Go-ethereum)中的远程拒绝服务(DoS)漏洞,由360代码卫士团队发现并报告。该漏洞影响Geth的虚拟机模块,通过精心构造的RPC调用可导致节点崩溃。
技术细节
漏洞成因
该漏洞由两个关键因素共同导致:
- 虚拟机内存分配检查不严格:Geth虚拟机模块在分配内存时未进行严格的边界检查(如图1所示)
- RPC调用默认分配巨额gas:当通过RPC接口调用时,系统会默认分配大量gas资源(如图2所示)
攻击原理
攻击者可按照以下步骤利用此漏洞:
- 构造恶意合约:预先部署包含分配巨额内存指令的恶意智能合约到以太坊主链
- 发起RPC调用:向开放RPC服务的以太坊节点发送特制的RPC请求
- 触发崩溃:节点处理该请求时,虚拟机因内存分配问题导致Geth进程崩溃
攻击特点
- 低消耗攻击:除部署合约时消耗少量gas外,攻击过程不再消耗任何gas
- 高危害性:可导致节点完全不可用
- 易利用性:只要节点开放RPC服务,攻击者即可轻易利用
影响范围
影响所有未修复的Geth客户端版本,特别是:
- 开放RPC接口的以太坊节点
- 使用默认配置的Geth客户端
修复建议
以太坊官方已发布修复补丁,建议:
- 立即升级至最新版本的Geth客户端
- 如无法立即升级,应限制RPC接口的访问权限
关于360代码卫士
360代码卫士是360企业安全集团旗下专注于软件源代码安全的产品线,主要能力包括:
- 源代码缺陷检测:识别安全缺陷和漏洞
- 源代码合规检测:确保代码编写合规性
- 源代码溯源检测:管理开源代码安全
支持平台和语言:
- 平台:Windows、Linux、Android、iOS、AIX等
- 语言:C/C++/C#、Objective-C、Java/JSP、JavaScript、PHP、Python、Go、Solidity等
漏洞研究团队招聘
360代码安全实验室正在招募漏洞挖掘研究员,要求:
- 熟悉操作系统原理和反汇编技术
- 具备较强的逆向分析能力
- 了解常见编程语言,能阅读代码
- 熟悉Fuzzing技术及漏洞挖掘工具
- 有漏洞挖掘经验者优先(如获得CVE编号)
福利待遇:
- 月薪20K-60K+年底双薪+项目奖
- 优秀者可获得股票期权
- 六险一金+各类补贴+下午茶+节假日福利
参考链接
- ETHEREUM Bounty Program - LEADERBOARD
- 360代码卫士官网: https://codesafe.qianxin.com
本报告基于360代码卫士团队的研究成果整理,详细技术细节可参考官方漏洞公告。建议所有以太坊节点管理员及时评估自身系统风险并采取相应防护措施。