Skip to main content

golang.org/x/crypto CVE-2026-39833

| EUVDEUVD-2026-31389 CRITICAL
Missing Authorization (CWE-862)
2026-05-22 Go GHSA-jppx-rxg9-jmrx
Critical
Disputed · 9.1 Vendor: Go
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reach exposed SSH agent socket
  2. Delivery
    Enumerate loaded keys with ConfirmBeforeUse constraint
  3. Exploit
    Send sign request to in-memory keyring
  4. Execution
    Receive signature without confirmation prompt
  5. Impact
    Authenticate to downstream SSH server as victim

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target application uses the in-memory keyring constructor agent.NewKeyring() from golang.org/x/crypto/ssh/agent prior to 0.52.0, that at least one key has been added with the ConfirmBeforeUse constraint as a security control the application relies on, and that the attacker has a path to issue sign requests against that keyring (typically via the SSH agent protocol over a socket or forwarded channel that the embedding program exposes). Limiting factors: applications that never set ConfirmBeforeUse, do not import this package, or expose the agent only to a fully trusted local user are not exploitable in any meaningful sense; the CVSS AV:N rating is realized only when the embedding application surfaces the agent to a network-reachable attacker, which is a deployment choice rather than a default.

Impact

The signals here conflict in a way that defenders should reconcile carefully. CVSS 9.1 (AV:N/AC:L/PR:N/UI:N, C:H/I:H) reflects the worst-case where an attacker can reach the agent over the network and obtain arbitrary signatures, and SSVC marks technical impact 'total' and automatable 'yes' - both alarming. However, EPSS is 0.02% (5th percentile), the vulnerability is not in CISA KEV, SSVC exploitation is 'none', and the bug only matters for applications that (a) embed this keyring and (b) actually rely on ConfirmBeforeUse as a security control - a niche deployment shape. The CVSS network vector also assumes the agent is reachable to an attacker, which depends entirely on how the embedding application exposes it; many ssh-agent deployments are local-socket only. Net assessment: high-severity-but-narrow-applicability - prioritize patching where the keyring is exposed or where ConfirmBeforeUse was treated as a real authorization gate, otherwise standard patch cadence is reasonable.

Exploit ScenarioDerived

An attacker who can reach an SSH agent built on this keyring (for example, via a forwarded agent socket or an agent exposed over a network channel by the embedding application) requests a signature using a key that the legitimate user had loaded with ConfirmBeforeUse expecting an interactive prompt; the keyring silently returns the signature without any user interaction. The attacker uses that signature to authenticate to downstream SSH servers as the user. No public exploit is identified at time of analysis, and exploitation requires the victim application to actually use this specific package and constraint.

Act Now Prioritize within 24-48h. Why: CRITICAL severity + public POC available.
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 28, 2026

Authentication bypass in Go's golang.org/x/crypto/ssh/agent in-memory keyring (versions before 0.52.0) allows SSH key signing operations to proceed without the intended ConfirmBeforeUse user confirmation prompt. Applications that relied on this constraint to gate sensitive signing actions effectively had no protection, with no error returned to indicate the constraint was silently ignored. No public exploit identified at time of analysis and EPSS is very low (0.02%), but SSVC rates technical impact as total.

RemediationAI

Vendor-released patch: upgrade golang.org/x/crypto to 0.52.0 or later (run 'go get golang.org/x/crypto@v0.52.0' and rebuild affected binaries), tracked in the upstream issue at https://go.dev/issue/79436 with fixes in https://go.dev/cl/778640 and https://go.dev/cl/778641 and announced at https://groups.google.com/g/golang-announce/c/a082jnz-LvI. After upgrading, NewKeyring() now returns an error when an unsupported constraint such as ConfirmBeforeUse is requested, so audit calling code to handle that error and either implement confirmation out-of-band or refuse to add the key. Until the upgrade can be deployed, do not rely on ConfirmBeforeUse as a security boundary in the in-memory keyring - instead remove keys requiring confirmation from the keyring, gate signing in the calling application layer, or restrict agent socket exposure to trusted local processes only; the trade-off is loss of per-use confirmation UX that some workflows depend on.

Affected VersionsENISA

golang.org/x/crypto/ssh/agent 0 <0.52.0

Affected Packages

go golang.org/x/crypto fix: 0.52.0
go golang.org/x/crypto/ssh/agent fix: 0.52.0
euvd golang_org_x_crypto_ssh_agent fix: 0.52.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability lives in the agent.NewKeyring() implementation of the golang.org/x/crypto/ssh/agent package, which provides an in-memory SSH agent keyring used by Go programs that implement or embed an ssh-agent. SSH agent key constraints (RFC 4251 / draft-miller-ssh-agent) allow callers to attach restrictions to a key such as ConfirmBeforeUse, which is supposed to require an out-of-band confirmation before each signing operation. The CPE confirms the affected component is cpe:2.3:a:golang.org/x/crypto:golang.org/x/crypto/ssh/agent. CWE-862 (Missing Authorization) describes the root cause: the keyring accepted the constraint at AddKey time but the Sign path never consulted or enforced it, so the authorization check that callers expected was simply absent.

Know when Golang Org X Crypto Ssh Agent gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Sources disagree (Medium–Critical)
Vendor (Go) PRIMARY 9.1 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
SUSE CRITICAL
Red Hat 5.5 MEDIUM

vuln.today treats the vendor’s rating as authoritative. A higher third-party CVSS (e.g. CISA-ADP) is shown for transparency but does not drive the headline severity.

CVSS VectorVendor: Go

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
None

Lifecycle Timeline

3
CVSS changed
May 28, 2026 - 15:07 NVD
9.1 (None) 9.1 (CRITICAL)
Patch available
May 22, 2026 - 04:31 EUVD
CVE Published
May 22, 2026 - 02:31 nvd
UNKNOWN (no severity yet)

DescriptionCVE.org

The in-memory keyring returned by NewKeyring() silently accepted keys with the ConfirmBeforeUse constraint but never enforced it. The key would sign without any confirmation prompt, with no indication to the caller that the constraint was not in effect. NewKeyring() now returns an error when unsupported constraints are requested.

Executive ViewAI

Why It Matters

Applications using Go's SSH agent library (golang.org/x/crypto/ssh/agent versions before 0.52.0) that implemented ConfirmBeforeUse controls to gate sensitive SSH key signing operations discover these protections are completely ineffective, silently bypassed with no error indication. Organizations relying on user-confirmation-based SSH security controls face the risk that their intended access gates are non-functional, potentially allowing unauthorized key operations without audit trails or operator awareness. This affects all Go-based systems where administrators configured confirmation requirements expecting them to be enforced.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Threat Intel
1
1 sources
Exploit
POC
Public exploit code exists
Social Media
1
Sightings
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA MSRC Vendor CIRCL GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC Yes
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity + public POC available
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Total

Priority Score

66
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

Vendor StatusVendor

SUSE

Severity: Critical
Product Status
openSUSE Leap 16.0 Fixed
openSUSE Tumbleweed Fixed
SLES15-SP6-CHOST-BYOS-GCE Fixed
SLES15-SP7-CHOST-BYOS-GCE Fixed
SUSE Linux Enterprise Desktop 15 SP7 Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy