以太坊客户端 Teku 和 Besu 修复威胁验证者奖励的安全漏洞
要点速览
- •Teku 于10月27日发布 26.10.3 版本,Besu 于10月26日发布 26.10.2 版本,两个更新均从用于运行以太坊节点的 Docker 镜像中移除了受影响的 eMudhra 证书颁发机构。
- •证书薄弱环节源于 eMudhra 的八个中间证书所依赖的私钥可被攻击者根据公开信息推算得出,而 Java 默认不检查证书吊销状态,使得基于 Java 的客户端即使在吊销后仍处于暴露状态。
- •Teku 警告称,与远程节点或外部签名服务的伪造连接本可能转移区块费用和奖励,但默认主网节点无需采取行动,且未收到被利用的报告。
- •研究员 avsetsin 发现的 Glamsterdam 草案规则中的存款路由错误,可能在构建者与验证者共享一个公钥时将质押存款送入构建者账户;修订后的规则按提款凭据对待处理存款进行分类,并在客户端团队最初拒绝后于10月26日合并。
- •在 Docker 之外运行 Teku 或 Besu 的节点运营者必须单独更新 Java,Teku 建议使用不受支持的 Java 26 的用户迁移至 Java 25,且 Hoodi 测试网升级已推迟,等待新的激活日期。

以太坊开发者已解决两个分别可能危及验证者存款和区块奖励的漏洞:一个涉及薄弱的网站证书,另一个则存在于该网络即将到来的 Glamsterdam 升级草案规则之中。共识客户端 Teku 和执行客户端 Besu 各自发布了补丁以应对该风险。以太坊节点同时运行一个共识客户端和一个执行客户端,这意味着节点堆栈的两个层面都需要进行同样的证书清理。
Teku 于10月27日发布了 26.10.3 版本,一天前 Besu 于10月26日发布了 26.10.2 版本。根据 Teku 的发布页面,两个版本均从用于运行以太坊节点的 Docker 镜像中移除了受影响的证书颁发机构。
薄弱证书私钥被曝光
研究人员于10月17日发现,印度 eMudhra 签发的八个中间证书所依赖的私钥可被攻击者根据公开信息推算得出。凭借这些密钥,攻击者本可以为伪造服务签发证书。eMudhra 已吊销这些证书,但由于 Java 默认不检查证书吊销状态,部分 Java 安装环境仍信任这些证书。Teku 和 Besu 均以 Java 编写,这正是该薄弱环节波及以太坊节点运营的原因。
这一发现的同一周,Google 预览了一套旨在将私钥分散到不同环境中的加密托管安全系统。
验证者费用本可能如何被转移
证书漏洞之所以重要,是因为验证者依赖与外部服务的连接。能够拦截此类连接的攻击者可以冒充连接另一端的服务。Teku 警告称,与远程节点的伪造连接可能导致区块费用被支付至攻击者控制的地址。在受影响的配置中,外部签名服务构成额外风险,因为攻击者可能获取将奖励转移走的签名。
"主网上的默认 Teku 节点不受影响,无需采取任何行动," Teku 表示。该客户端团队报告称未发现已知的利用行为。
Glamsterdam 存款规则获得修正
在另一项工作中,在研究员 avsetsin 发现存款路由错误后,开发者修订了 Glamsterdam 草案规则。他们还推迟了原定于10月26日进行的 Hoodi 测试网升级。
在早期草案下,共享单一公钥的构建者和验证者可能导致质押存款进入构建者的账户。Glamsterdam 旨在将区块构建与验证分离,修订后的提案按提款凭据对待处理存款进行分类,从而区分验证者存款与构建者存款。
客户端团队最初于10月19日因未能达成一致而拒绝该修正。开发者随后添加了测试,并于10月26日合并了修订后的规则。
节点运营者面临不同的后续步骤
Glamsterdam 修正已纳入以太坊规范,但软件团队仍需加以实现。Glamsterdam 此前已在 Sepolia 测试网运行,而 Hoodi 则等待新的激活日期。
在 Docker 之外运行 Teku 或 Besu 的运营者必须单独更新 Java。证书风险涵盖从以太坊 gas 费用中提取的付款,例如支付给验证者的优先费用,而非普通用户钱包余额。Teku 建议使用不受支持的 Java 26 的用户迁移至 Java 25。
证书补丁解决了受影响的 Docker 镜像问题,而 Glamsterdam 修复方案仍有待整个以太坊客户端生态系统的采纳。