CVE-2026-39833: Go x/crypto/ssh/agent missing enforcement of ConfirmBeforeUse constraint

CVE-2026-39833 · Severity: critical · CVSS 9.1 · Published 2026-05-22

A vulnerability was found in the Go SSH agent library, which is used to manage cryptographic keys for secure remote access. The library failed to enforce a security setting that requires user confirmation before a key is used for signing. This could allow an attacker to use a stored key to sign data or authenticate to other systems without the owner's knowledge or approval.

Technologies: golang.org/x/crypto (Go), golang.org/x/crypto/ssh/agent (Go). Vendors: Go.

Quick answers

Is CVE-2026-39833 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-39833 being exploited in the wild.
How severe is CVE-2026-39833?
Critical severity, with a CVSS score of 9.1, published 22 May 2026.
Which products and versions are affected?
golang.org/x/crypto (Go) SEMVER:introduced=0,fixed=0.52.0; golang.org/x/crypto/ssh/agent (Go) < 0.52.0.
Is there a fix for CVE-2026-39833?
Yes. golang.org/x/crypto (Go): upgrade to 0.52.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-39833 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-39833?
Check whether you run golang.org/x/crypto (Go) or golang.org/x/crypto/ssh/agent (Go) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • golang.org/x/crypto (Go): upgrade to 0.52.0 or later
    go get golang.org/x/crypto@v0.52.0

Technical details

The in-memory keyring implementation in golang.org/x/crypto/ssh/agent, specifically the NewKeyring() function, silently accepts keys with the 'ConfirmBeforeUse' constraint but fails to enforce it. When a signing request is made, the agent performs the operation without prompting the user for confirmation, providing no indication that the security constraint was ignored. This is classified as a missing authorization check (CWE-862). An attacker with access to the agent could perform signing operations that should have required manual approval. The issue is fixed in version 0.52.0, where NewKeyring() now returns an error if unsupported constraints are requested.

Affected products

  • Go golang.org/x/crypto/ssh/agent < 0.52.0

Identifiers

  • CVE-2026-39833
  • GHSA-jppx-rxg9-jmrx
  • GO-2026-5005

Timeline

  • 2026-05-16: disclosed: Issue reported to Go project
  • 2026-05-22: advisory: NVD and Go vulnerability report published
  • 2026-06-25: advisory: GitHub Advisory published

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.