-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Aliases: CVE-2022-23492, GHSA-j7qp-mfxf-8xjw Fixes #1148 Change-Id: I69e1665e846e7f92246e3af192a891cb152ada94 Reviewed-on: https://go-review.googlesource.com/c/vulndb/+/457396 Reviewed-by: Tatiana Bradley <[email protected]> Run-TryBot: Maceo Thompson <[email protected]> TryBot-Result: Gopher Robot <[email protected]>
- Loading branch information
Maceo Thompson
committed
Dec 14, 2022
1 parent
ffba2fd
commit 5b5baee
Showing
2 changed files
with
190 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,116 @@ | ||
{ | ||
"id": "GO-2022-1148", | ||
"published": "0001-01-01T00:00:00Z", | ||
"modified": "0001-01-01T00:00:00Z", | ||
"aliases": [ | ||
"CVE-2022-23492", | ||
"GHSA-j7qp-mfxf-8xjw" | ||
], | ||
"details": "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.\n\nIt's recommend that you update to v0.21.0 onwards as you'll 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" | ||
} | ||
] | ||
} | ||
], | ||
"database_specific": { | ||
"url": "https://pkg.go.dev/vuln/GO-2022-1148" | ||
}, | ||
"ecosystem_specific": { | ||
"imports": [ | ||
{ | ||
"path": "github.com/libp2p/go-libp2p", | ||
"symbols": [ | ||
"New" | ||
] | ||
}, | ||
{ | ||
"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" | ||
} | ||
], | ||
"schema_version": "1.3.1" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
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 | ||
- 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 | ||
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 that you update to v0.21.0 onwards as you'll 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 |