Uncontrolled Resource Consumption
The package `go-libp2p` is the official libp2p implementation in the Go programming language. go-libp2p versions prior to 0.18.0 are vulnerable to targeted Resource Exhaustion Attacks. These attacks target libp2p’s connection, stream, peer, and memory management. An attacker can cause the allocation of large amounts of memory, ultimately leading to the process getting killed by the host’s operating system. While a connection manager tasked with keeping the number of connections within manageable limits has been part of go-libp2p, this component was designed to handle the regular churn of peers, not a targeted resource exhaustion attack. Users are advised to upgrade their version of go-libp2p. Users unable to upgrade may consult the Denial Of Service (dos) mitigation page for more information on how to incorporate mitigation strategies, monitor your application, and respond to attacks.
CWE-400 - Uncontrolled resource consumption
An uncontrolled resource allocation attack (also known as resource exhaustion attack) triggers unauthorized overconsumption of the limited resources in an application, such as memory, file system storage, database connection pool entries, and CPU. This may lead to denial of service for valid users and degradation of the application's functionality as well as that of the host operating system.