加入收藏 | 设为首页 | 会员中心 | 我要投稿 黄山站长网 (https://www.0559zz.com.cn/)- 迁移、建站、智能边缘、云容器引擎、数据快递!
当前位置: 首页 > 运营中心 > 交互 > 正文

以太坊又被爆重大陷阱 七成节点一度瘫痪风险

发布时间:2021-10-22 13:54:50 所属栏目:交互 来源:互联网
导读:祸不单行。比特币击穿6000美元底线后,以太坊又爆隐患。 今天凌晨,区块链安全公司PeckShield披露了一个安全漏洞:通过发送一个恶意报文,攻击者能向以太坊发动攻击。一旦成功,以太坊2/3的节点将停摆,导致一场地震。 在区块链安全的世界里,安稳难求,步
祸不单行。比特币击穿6000美元底线后,以太坊又爆隐患。
 
今天凌晨,区块链安全公司PeckShield披露了一个安全漏洞:通过发送一个恶意报文,攻击者能向以太坊发动攻击。一旦成功,以太坊2/3的节点将停摆,导致一场地震。
 
在区块链安全的世界里,安稳难求,步步惊心。
 
01 “致命报文”
 
这个漏洞,被命名为:“致命报文”。
 
它出现在以太坊官方客户端geth上。后者对于以太坊至关重要:有大约70%的节点运行在geth之上,包括交易所和矿池这些关键节点。
 
通过这个漏洞,攻击者可以直接让以太坊瘫痪。一旦成功,以太坊市场将面临巨震。
 
PeckShield 向一本区块链揭示了“致命报文”的漏洞细节:
 
以太坊的核心,在于所有的客户端都必须遵守同样的协议,以保持共识。
 
这些协议由RLPx、DΞVp2p和其他子协议组成,后者包括以太坊线路协议、轻量级以太坊协议等。
 
为了支持轻量级的客户端,轻量级以太坊子协议(LES)允许以太坊节点在同步获取区块时,仅下载区块的头部,在需要时再获取区块的其他部分。为了实现这一功能,还需要一个全节点(或archive节点)作为LES服务器,为轻量级节点提供服务。
 
执行以下命令,可以启动一个支持LES服务的geth全节点:
 
geth —lightserv 20
 
在向LES服务器请求区块头部时,LES客户端会发起类型为GetBlockHeaders的消息,而LES服务器的消息处理器负责相应的解析工作。
 
由LES客户端发送的查询请求遵循如下格式:
 
从第17行开始,LES服务器处理not reverse分支。在第19行,LES服务器会检测在忽略了query.Skip区块之后,是否还有可用的区块头部。
 
如果检测通过,Get Block Hashes From Hash方法就会被调用(即第20行),并返回一个区块头部数组。
 
然而,对作为输入的请求,LES服务器并未验证其有效性。攻击者可以构造形如query.Skip = -1 (0xFFF...F)这样的恶意请求。
 
当query.Skip+1被作为待分配数组的最大长度参数,传递至Get Block Hashes From Hash方法时,长度为0的数组即被分配并返回。
 
随后,通过索引query.Skip = 0xFFF…F访问该长度为0的数组时,LES服务器就会彻底崩溃。
 
“在发现漏洞后的第一时间,我们就向以太坊基金会提交了漏洞报告。目前,以太坊geth客户端的开发团队,已发布了相应的补丁。”Peck Shield告诉一本区块链。
 
因此,虽然这次漏洞危害面广,危险性大,但并没有对以太坊造成实际损失。
 
Peck Shield工作人员向一本区块链展示了以太坊官方的回复邮件。
 
“这只是一系列漏洞中的一个,我们会随时公布其他漏洞。”PeckShield公司表示。

(编辑:黄山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读