blob: f01a7a2b673b12c2b159c51f42b06cbf7a397ed6 [file] [log] [blame]
id: GO-2022-1148
modules:
- module: github.com/libp2p/go-libp2p
versions:
- fixed: 0.18.0
vulnerable_at: 0.18.0-rc1
packages:
- package: github.com/libp2p/go-libp2p
symbols:
- New
derived_symbols:
- DefaultStaticRelays
- Muxer
- NewWithoutDefaults
- Security
- Transport
- package: github.com/libp2p/go-libp2p/config
symbols:
- MuxerConstructor
- makeMuxer
- TransportConstructor
- makeTransports
- makeArgumentConstructors
- makeConstructor
- SecurityConstructor
derived_symbols:
- Config.NewNode
- package: github.com/libp2p/go-libp2p/p2p/host/autonat
symbols:
- client.DialBack
- autoNATService.handleStream
derived_symbols:
- New
- package: github.com/libp2p/go-libp2p/p2p/host/basic
symbols:
- BasicHost.newStreamHandler
derived_symbols:
- NewHost
- package: github.com/libp2p/go-libp2p/p2p/protocol/circuitv1/relay
symbols:
- NewRelay
- package: github.com/libp2p/go-libp2p/p2p/protocol/circuitv2/client
symbols:
- Client.connectV1
- Client.connectV2
- Client.Dial
- package: github.com/libp2p/go-libp2p/p2p/protocol/circuitv2/relay
symbols:
- New
- Relay.Close
- Relay.handleStream
- Relay.handleConnect
- package: github.com/libp2p/go-libp2p/p2p/protocol/holepunch
symbols:
- Service.initiateHolePunch
- Service.incomingHolePunch
- Service.handleNewStream
derived_symbols:
- Service.DirectConnect
- netNotifiee.Connected
summary: Resource exhaustion in github.com/libp2p/go-libp2p
description: |-
go-libp2p is 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.
It's recommend to update to v0.21.0 onwards to get some useful functionality
that will help in production environments like better metrics around resource
usage, Grafana dashboards around resource usage, allow list support, and default
autoscaling limits.
cves:
- CVE-2022-23492
ghsas:
- GHSA-j7qp-mfxf-8xjw
references:
- advisory: https://github.com/libp2p/go-libp2p/security/advisories/GHSA-j7qp-mfxf-8xjw
- fix: https://github.com/libp2p/go-libp2p/commit/15d7dfbf54264ead8e6f49ca658d79c90635e2de