概括
版本的 格斯 用Go建造 或者 最有可能受到与DOS相关的严重安全漏洞的影响。 Golang团队已将此缺陷注册为“ CVE-2020-28362”。
我们建议所有用户重建(理想情况下 v1.9.24) 1.15.5 或者 1.14.12,避免节点崩溃。另外,如果您正在运行通过我们的官方渠道分发的二进制文件,我们将发布 v1.9.24 我们自己构建的 1.15.5。
由于缺少的基本图像,Docker图像很可能会过时,但是您可以检查有关如何临时构建GO的发行说明 1.15.5。请跑 Geth版本 为了验证您的二进制版本的GO版本。
背景
10月初,Go-Ethereum参加了Google的 oss-fuzz 程序。我们临时执行了模糊,并测试了一些不同的平台。
在2020-10-24,我们被告知我们的一个模糊者发现了撞车事故。
经过调查,事实证明,该问题的根本原因是GO的标准库中的一个错误,并且报告了该问题上游。
特别感谢 Adam Korczynski 将Go-Ethereum最初集成到Oss-Fuzz中的ADA逻辑!
影响
DOS问题可用于在块处理过程中崩溃所有Geth Nodes,其影响是以太坊网络的主要部分脱机。
在Go-Ethereum之外,这个问题最有可能与Geth的所有叉子(例如Turbogeth和Eck的Core-Geth)有关。对于更广泛的环境,我们将提到上游,因为该团队已经对潜在受影响的各方进行了调查。
时间表
- 2020-10-24:来自Oss-Fuzz的崩溃报告
- 2020-10-25:调查发现这是由于GO中的缺陷。详细信息发送给 security@golang.org
- 2020-10-26:上游的确认,正在进行的调查
- 2020-10-26-2020-11-06:讨论的潜在修复,对潜在受影响方的上游研究
- 2020-11-06:2020-11-12的上游暂定安排的修复释放
- 2020-11-09:上游预先宣布的安全发布: https://groups.google.com/g/golang-announce/c/kma3eup0qhu/m/o5rsmho_caaj
- 2020-11-11:通过官方的Geth Twitter通知用户有关即将发布的发布 帐户,我们的官方不和谐通道和 reddit。
- 2020-11-12:发布新的GO版本,新版本 格斯 二进制已释放
其他问题
采矿缺陷
另一个安全问题引起了我们的注意 这个公关,包含对Ethash算法的修复。
采矿缺陷可能会导致矿工在即将到来的时代中错误地计算POW。这发生在2020-11-06的ETC链上。看来这对于Eth Mainnet围绕块来说是一个问题 11550000 /时代 385,将于2021年1月上旬发生。
此问题也已解决 1.9.24。此问题仅与矿工有关,非矿体节点不受影响。
Geth Shallow复制错误
做作的: 1.9.7 – 1.9.16
固定的: 1.9.17
类型:共识漏洞
在2020-07-15,约翰·扬索克·杨(John Youngseok Yang)(软件平台实验室)报告了Geth的共识脆弱性。
Geth的预编译 Datacopy(0x00 … 04) 合同对援引进行了浅副本,而均等的副本进行了深层副本。攻击者可以部署合同
- 写信 x 到EVM内存区域 r,,,,
- 呼叫 0x00..04 和 r 作为论点,
- 覆盖 r 到 y,,,,
- 最后援引 返回数据 OPCODE。
- 当调用此合同时,均等将推动 x 在EVM堆栈上,Geth会推 y。
结果
这是在Block的以太坊主网上利用的 11234873, 交易 0x57F7F9。节点
可以在 Geth Post Mortem 和 Infuro后死亡 和 这里。
dos in .16 和 .17
做作的: v1.9.16,,,,v1.9.17
固定的: v1.9.18
类型:块处理期间的DOS漏洞
发现了DOS漏洞,并固定在 v1.9.18。我们选择在此时间点不发布详细信息。
建议
在短期内,我们建议所有用户升级到 格斯 版本 v1.9.24 (应该与Go一起建造 1.15.5) 立即地。可以找到官方版本 这里。
如果您通过Docker使用Geth,可能会有一些问题。如果您正在使用 以太坊/客户仪,有两件事要注意:
- 在Docker Hub上出现新图像之前,可能会有延迟。
- 除非GO基础图像很快创建了,否则它们有可能通过 易受伤害的 GO的版本。
如果您自己构建Docker图像(通过 Docker Build。 从存储库根),然后第二个问题可能是您同样的问题。
因此,请小心确保去 1.15.5 被用作基本图像。
从长远来看,我们建议用户和矿工也研究替代客户。我们强烈的感觉是,以太坊网络的弹性不应取决于任何单一的客户实施。有 basut,,,, nethermind,,,, 开脑 和 Turbogeth 和其他人选择同样的选择。
请通过 https://bounty.ethereum.org,或通过 bounty@ethereum.org 或通过 security@ethereum.org。