CVE-2023-40591 Denial of service via malicious p2p message in go-ethereum
Attackers can cause denial of service in go-ethereum nodes by sending malicious p2p messages that trigger unbounded memory consumption.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2023-40591?
CVE-2023-40591 is a high-severity denial of service vulnerability in go-ethereum, published on 6 Sep 2023. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
go-ethereum (geth) is a golang execution layer implementation of the Ethereum protocol. A vulnerable node, can be made to consume unbounded amounts of memory when handling specially crafted p2p messages sent from an attacker node. The fix is included in geth version `1.12.1-stable`, i.e, `1.12.2-unstable` and onwards. Users are advised to upgrade. There are no known workarounds for this vulnerability.
Weakness: CWE-400
Which versions are affected by CVE-2023-40591?
3 open source packages ship an affected version, including github.com/ethereum/go-ethereum. It affects 1 product.
| Package | Affected | Fixed in |
|---|---|---|
github.com/ethereum/go-ethereum Go | All versions | 1.12.1 |
github.com/ethereum/go-ethereum Go | All versions | 1.12.1-stable |
github.com/ethereum/go-ethereum Go | All versions | 1.12.1-stable |
Products include Ethereum Go Ethereum.
How do I fix CVE-2023-40591?
Upgrade github.com/ethereum/go-ethereum to a fixed version for your release line: 1.12.1 or 1.12.1-stable.
Upgrade, then put limits on request size, rate and nesting depth so one client cannot exhaust the service. More about Denial of service.
Is CVE-2023-40591 being exploited?
There is no known exploitation of CVE-2023-40591 in the wild and no public exploit code.
Other vulnerabilities in go-ethereum
Sources
Also known as GHSA-ppjg-v974-84cm, GO-2023-2046.