CVE-2023-40591: Denial of service via malicious p2p message in go-ethereum
Impact
A vulnerable node, can be made to consume unbounded amounts of memory when handling specially crafted p2p messages sent from an attacker node.
Details
The p2p handler spawned a new goroutine to respond to ping requests. By flooding a node with ping requests, an unbounded number of goroutines can be created, leading to resource exhaustion and potentially crash due to OOM.
Patches
The fix is included in geth version 1.12.1-stable, i.e, 1.12.2-unstable and onwards.
Fixed by https://github.com/ethereum/go-ethereum/pull/27887
Workarounds
No known workarounds.
Credits
This bug was reported by Patrick McHardy and reported via bounty@ethereum.org.
References
Other sources
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.
— MITRE
Affected Software
Event History
Frequently Asked Questions
What is the impact of CVE-2023-40591?
A vulnerable node can be made to consume unbounded amounts of memory when handling specially crafted p2p messages sent from an attacker node.
Which software versions are affected by CVE-2023-40591?
Versions up to and excluding 1.12.1-stable of go-ethereum (geth) are affected.
How can I fix CVE-2023-40591?
Upgrade to version 1.12.1-stable or higher of go-ethereum (geth).
What is the severity of CVE-2023-40591?
The vulnerability has a severity score of 7.5 (high).
Is there any additional information available for CVE-2023-40591?
You can find additional information about this vulnerability in the official vulnerability disclosure policy and the release notes of go-ethereum (geth) version 1.12.1.