Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/vulndb: potential Go vuln in github.com/libp2p/go-libp2p: CVE-2023-39533 #2000

Closed
GoVulnBot opened this issue Aug 8, 2023 · 1 comment
Closed
Assignees

Comments

@GoVulnBot
Copy link

CVE-2023-39533 references github.com/libp2p/go-libp2p, which may be a Go module.

Description:
go-libp2p is the Go implementation of the libp2p Networking Stack. Prior to versions 0.27.8, 0.28.2, and 0.29.1 malicious peer can use large RSA keys to run a resource exhaustion attack & force a node to spend time doing signature verification of the large key. This vulnerability is present in the core/crypto module of go-libp2p and can occur during the Noise handshake and the libp2p x509 extension verification step. To prevent this attack, go-libp2p versions 0.27.8, 0.28.2, and 0.29.1 restrict RSA keys to <= 8192 bits. To protect one's application, it is necessary to update to these patch releases and to use the updated Go compiler in 1.20.7 or 1.19.12. There are no known workarounds for this issue.

References:

Cross references:

See doc/triage.md for instructions on how to triage this report.

modules:
    - module: github.com/libp2p/go-libp2p
      vulnerable_at: 0.29.2
      packages:
        - package: go-libp2p
description: |-
    go-libp2p is the Go implementation of the libp2p Networking Stack. Prior to
    versions 0.27.8, 0.28.2, and 0.29.1 malicious peer can use large RSA keys to run
    a resource exhaustion attack & force a node to spend time doing signature
    verification of the large key. This vulnerability is present in the core/crypto
    module of go-libp2p and can occur during the Noise handshake and the libp2p x509
    extension verification step. To prevent this attack, go-libp2p versions 0.27.8,
    0.28.2, and 0.29.1 restrict RSA keys to <= 8192 bits. To protect one's
    application, it is necessary to update to these patch releases and to use the
    updated Go compiler in 1.20.7 or 1.19.12. There are no known workarounds for
    this issue.
cves:
    - CVE-2023-39533
references:
    - advisory: https://github.com/libp2p/go-libp2p/security/advisories/GHSA-876p-8259-xjgg
    - report: https://go.dev/issue/61460
    - fix: https://github.com/libp2p/go-libp2p/pull/2454
    - fix: https://github.com/quic-go/quic-go/pull/4012
    - fix: https://go.googlesource.com/+/2350afd2e8ab054390e284c95d5b089c142db017
    - fix: https://github.com/libp2p/go-libp2p/commit/0cce607219f3710addc7e18672cffd1f1d912fbb
    - fix: https://github.com/libp2p/go-libp2p/commit/445be526aea4ee0b1fa5388aa65d32b2816d3a00
    - fix: https://github.com/libp2p/go-libp2p/commit/e30fcf7dfd4715ed89a5e68d7a4f774d3b9aa92d

@zpavlinovic zpavlinovic self-assigned this Aug 8, 2023
@gopherbot
Copy link
Contributor

Change https://go.dev/cl/517435 mentions this issue: data/reports: add GO-2023-2000.yaml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants