| { |
| "schema_version": "1.3.1", |
| "id": "GO-2022-1148", |
| "modified": "0001-01-01T00:00:00Z", |
| "published": "0001-01-01T00:00:00Z", |
| "aliases": [ |
| "CVE-2022-23492", |
| "GHSA-j7qp-mfxf-8xjw" |
| ], |
| "summary": "Resource exhaustion in github.com/libp2p/go-libp2p", |
| "details": "go-libp2p is vulnerable to targeted resource exhaustion attacks.\n\nThese 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.\n\nWhile 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.\n\nIt'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.", |
| "affected": [ |
| { |
| "package": { |
| "name": "github.com/libp2p/go-libp2p", |
| "ecosystem": "Go" |
| }, |
| "ranges": [ |
| { |
| "type": "SEMVER", |
| "events": [ |
| { |
| "introduced": "0" |
| }, |
| { |
| "fixed": "0.18.0" |
| } |
| ] |
| } |
| ], |
| "ecosystem_specific": { |
| "imports": [ |
| { |
| "path": "github.com/libp2p/go-libp2p", |
| "symbols": [ |
| "DefaultStaticRelays", |
| "Muxer", |
| "New", |
| "NewWithoutDefaults", |
| "Security", |
| "Transport" |
| ] |
| }, |
| { |
| "path": "github.com/libp2p/go-libp2p/config", |
| "symbols": [ |
| "Config.NewNode", |
| "MuxerConstructor", |
| "SecurityConstructor", |
| "TransportConstructor", |
| "makeArgumentConstructors", |
| "makeConstructor", |
| "makeMuxer", |
| "makeTransports" |
| ] |
| }, |
| { |
| "path": "github.com/libp2p/go-libp2p/p2p/host/autonat", |
| "symbols": [ |
| "New", |
| "autoNATService.handleStream", |
| "client.DialBack" |
| ] |
| }, |
| { |
| "path": "github.com/libp2p/go-libp2p/p2p/host/basic", |
| "symbols": [ |
| "BasicHost.newStreamHandler", |
| "NewHost" |
| ] |
| }, |
| { |
| "path": "github.com/libp2p/go-libp2p/p2p/protocol/circuitv1/relay", |
| "symbols": [ |
| "NewRelay" |
| ] |
| }, |
| { |
| "path": "github.com/libp2p/go-libp2p/p2p/protocol/circuitv2/client", |
| "symbols": [ |
| "Client.Dial", |
| "Client.connectV1", |
| "Client.connectV2" |
| ] |
| }, |
| { |
| "path": "github.com/libp2p/go-libp2p/p2p/protocol/circuitv2/relay", |
| "symbols": [ |
| "New", |
| "Relay.Close", |
| "Relay.handleConnect", |
| "Relay.handleStream" |
| ] |
| }, |
| { |
| "path": "github.com/libp2p/go-libp2p/p2p/protocol/holepunch", |
| "symbols": [ |
| "Service.DirectConnect", |
| "Service.handleNewStream", |
| "Service.incomingHolePunch", |
| "Service.initiateHolePunch", |
| "netNotifiee.Connected" |
| ] |
| } |
| ] |
| } |
| } |
| ], |
| "references": [ |
| { |
| "type": "ADVISORY", |
| "url": "https://github.com/libp2p/go-libp2p/security/advisories/GHSA-j7qp-mfxf-8xjw" |
| }, |
| { |
| "type": "FIX", |
| "url": "https://github.com/libp2p/go-libp2p/commit/15d7dfbf54264ead8e6f49ca658d79c90635e2de" |
| } |
| ], |
| "database_specific": { |
| "url": "https://pkg.go.dev/vuln/GO-2022-1148" |
| } |
| } |