惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

B
Blog RSS Feed
Jina AI
Jina AI
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
Hugging Face - Blog
Hugging Face - Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
博客园 - 司徒正美
罗磊的独立博客
J
Java Code Geeks
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
Vercel News
Vercel News
A
About on SuperTechFans
I
InfoQ
D
DataBreaches.Net
爱范儿
爱范儿
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
aimingoo的专栏
aimingoo的专栏
宝玉的分享
宝玉的分享
P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
美团技术团队

Ethereum Foundation Blog

Checkpoint #9: Apr 2026 | Ethereum Foundation Blog How L1 and L2s can build the strongest possible Ethereum | Ethereum Foundation Blog The Promise of Ethereum: Introducing the EF Mandate | Ethereum Foundation Blog This Is Fine (Until the Grant Runs Out) | Ethereum Foundation Blog Treasury Staking Initiative | Ethereum Foundation Blog The Ethereum Foundation's Commitment to DeFi | Ethereum Foundation Blog Protocol Priorities Update for 2026 | Ethereum Foundation Blog Announcing the Platform Team at EF | Ethereum Foundation Blog Ethereum Protocol Studies 2026 | Ethereum Foundation Blog Executive Leadership Update | Ethereum Foundation Blog An update from Tomasz | Ethereum Foundation Blog Introducing the EF Academic Secretariat 2026 PhD Fellowship | Ethereum Foundation Blog Trillion Dollar Security Day at Devconnect | Ethereum Foundation Blog Allocation Update - Q4 2025 | Ethereum Foundation Blog Checkpoint #8: Jan 2026 | Ethereum Foundation Blog Devcon 8 is coming to Mumbai, India in November 2026 | Ethereum Foundation Blog Hegota Upgrade EIP Proposal Timelines | Ethereum Foundation Blog Shipping an L1 zkEVM #2: The Security Foundations | Ethereum Foundation Blog The Future of Ethereum’s State | Ethereum Foundation Blog Devconnect Argentina Recap | Ethereum Foundation Blog Allocation Update - Q3 2025 | Ethereum Foundation Blog Making Ethereum Feel Like One Chain Again | Ethereum Foundation Blog Checkpoint #7: Nov 2025 | Ethereum Foundation Blog Fusaka Mainnet Announcement | Ethereum Foundation Blog 2 weeks to Devconnect: Everything you need to know | Ethereum Foundation Blog Unveiling ESP's New Grants Program | Ethereum Foundation Blog Fusaka Update – Transaction Gas Limit Cap arrives with EIP-7825 | Ethereum Foundation Blog Fusaka Update - Information for Blob users | Ethereum Foundation Blog Announcing the 2026 EF Internship | Ethereum Foundation Blog Supporting privacy with new funding mechanisms | Ethereum Foundation Blog
Geth security release | Ethereum Foundation Blog
2020-11-12 · via Ethereum Foundation Blog

Summary

Versions of geth built with Go <1.15.5 or <1.14.12 are most likely affected by a critical DoS-related security vulnerability. The golang team has registered this flaw as 'CVE-2020-28362'.

We recommend all users to rebuild (ideally v1.9.24) with Go 1.15.5 or 1.14.12, to avoid node crashes. Alternatively, if you are running binaries distributed via one of our official channels, we're going to release v1.9.24 ourselves built with Go 1.15.5.

Docker images will most probably be out of date due to a missing base image, but you can check the release notes on how to temporarily build one with Go 1.15.5. Please run geth version to verify the Go version your binary was built with.

Background

In early October, go-ethereum enrolled into Google's OSS-Fuzz program. We had previosly executed fuzzers on an ad-hoc basis and tested some different platforms.

On 2020-10-24, we were notified that one of our fuzzers had found a crash.

Upon investigation, it turned out that the root cause of the issue was a bug in the standard libraries of Go, and the issue was reported upstream.

Special thanks to Adam Korczynski of Ada Logics for the initial integration of go-ethereum into OSS-Fuzz!

Impact

The DoS issue can be used to crash all Geth nodes during block processing, the effects of which would be that a major part of the Ethereum network went offline.

Outside of Go-Ethereum, the issue is most likely relevant for all forks of Geth (such as TurboGeth or ETC's core-geth). For an even wider context, we would refer to upstream, as the Go-team have performed an investigation of potentially affected parties.

Timeline

  • 2020-10-24: Crash report from OSS-fuzz
  • 2020-10-25: Investigation found that it was due to flaw in Go. Details sent to security@golang.org
  • 2020-10-26: Acknowledgement from upstream, investigation ongoing
  • 2020-10-26 -- 2020-11-06: Potential fixes discussed, upstream investigation of potentially affected parties
  • 2020-11-06: Upstream tentatively scheduled fix-release for 2020-11-12
  • 2020-11-09: Upstream pre-announced the security release: https://groups.google.com/g/golang-announce/c/kMa3eup0qhU/m/O5RSMHO_CAAJ
  • 2020-11-11: Notified users about the upcoming release via the official Geth twitter account, our official Discord-channel and Reddit.
  • 2020-11-12: New Go version were released, and new geth binaries were released

Additional issues

Mining flaw

Another security issue was brought to our attention via this PR, containing a fix to the ethash algorithm.

The mining flaw could cause miners to erroneously calculate PoW in an upcoming epoch. This happened on the ETC chain on 2020-11-06. It appears that this would be an issue for ETH mainnet around block 11550000 / epoch 385, which will occur early January 2021.

This issue is also fixed as of 1.9.24. This issue is relevant only for miners, non-mining nodes are unaffected.

Geth shallow copy bug

Affected: 1.9.7 - 1.9.16

Fixed: 1.9.17

Type: Consensus vulnerability

On 2020-07-15, John Youngseok Yang (Software Platform Lab) reported a consensus vulnerability in Geth.

Geth's pre-compiled dataCopy(0x00...04) contract did a shallow copy on invocation, whereas Parity's did a deep copy. An attacker could deploy a contract that

  • writes X to an EVM memory region R,
  • calls 0x00..04 with R as an argument,
  • overwrites R to Y,
  • and finally invokes the RETURNDATACOPY opcode.
  • When this contract is invoked, Parity would push X on the EVM stack, whereas Geth would push Y.

Consequences

This was exploited on Ethereum Mainnet at block 11234873, transaction 0x57f7f9. Nodes <v1.9.18 were dropped off the network, causing ~30 blocks to be lost on a sidechain. It also caused Infura to drop off, which caused problems for a lot of people and services who were depending on Infura as a backend provider.

More context can be found in the Geth post-mortem and Infura post-mortem and here.

DoS in .16 and .17

Affected: v1.9.16,v1.9.17

Fixed: v1.9.18

Type: DoS vulnerability during block processing

A DoS vulnerability was found, and fixed in v1.9.18. We have chosen to not publish the details at this point in time.

Recommendations

In the short term, we recommend that all users upgrade to geth version v1.9.24 (which should be built with Go 1.15.5) immediately. Official releases can be found here.

If you are using Geth via Docker, there could be a few problems. If you are using ethereum/client-go, there are two things to be aware of:

  1. There might be a delay before the new image appears on docker hub.
  2. Unless the Go base images have been created quickly enough, there's a chance that they become built with a vulnerable version of Go.

If you are building docker images yourself, (via docker build . from the repository root), then the second issue might be cause problems for you aswell.

So be careful to ensure that Go 1.15.5 is used as the base image.

In the long term, we recommend that users and miners look into alternative clients too. It is our strong feeling that the resilience of the Ethereum network should not depend on any single client implementation. There is Besu, Nethermind, OpenEthereum and TurboGeth and others to choose from aswell.

Please report security vulnerabilities either via https://bounty.ethereum.org, or via bounty@ethereum.org or via security@ethereum.org.