Description
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.
Published: 2026-05-22
Score: 9.1 Critical
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

NewKeyring() silently accepts keys with the ConfirmBeforeUse constraint but never enforces it, allowing a key to sign data without any confirmation prompt or warning. This flaw effectively removes a hardening layer and can lead to clandestine forgery or credential theft if an attacker gains access to the keyring.

Affected Systems

The affected component is the golang.org/x/crypto/ssh/agent package, which provides an in-memory keyring used by SSH agents in Go applications. All releases that include the unpatched NewKeyring() behavior are vulnerable. No specific product version list is available at this time.

Risk and Exploitability

The EPSS score is less than 1%, and the vulnerability is not listed in the CISA KEV catalog. The CVSS score is 9.1, indicating a high‑severity flaw that allows unauthorized signing of data without user confirmation, compromising data integrity. Attackers would need to insert a key endowed with the ConfirmBeforeUse constraint into the agent or gain access to the agent process. Despite the low EPSS probability, the serious potential for clandestine signing makes it a significant risk for affected systems.

Generated by OpenCVE AI on May 28, 2026 at 19:02 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade golang.org/x/crypto/ssh/agent to a version that enforces constraints during NewKeyring() initialization, ensuring that unsupported constraints are rejected.
  • Scan existing keyrings for keys added with a ConfirmBeforeUse constraint and remove or modify them to eliminate the unprotected signing capability.
  • Revoke or replace any keys that were added with ConfirmBeforeUse constraints, and avoid reintroducing such keys until the agent is updated and fully tested.

Generated by OpenCVE AI on May 28, 2026 at 19:02 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 28 May 2026 17:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-285

Thu, 28 May 2026 15:15:00 +0000

Type Values Removed Values Added
First Time appeared Golang crypto
Weaknesses CWE-862
CPEs cpe:2.3:a:golang:crypto:*:*:*:*:*:go:*:*
Vendors & Products Golang crypto

Fri, 22 May 2026 19:30:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Fri, 22 May 2026 13:15:00 +0000

Type Values Removed Values Added
First Time appeared Golang
Golang ssh
Vendors & Products Golang
Golang ssh

Fri, 22 May 2026 05:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-285

Fri, 22 May 2026 03:30:00 +0000

Type Values Removed Values Added
Description 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.
Title Invoking key constraints not enforced in golang.org/x/crypto/ssh/agent
References

cve-icon MITRE

Status: PUBLISHED

Assigner: Go

Published:

Updated: 2026-05-22T18:58:08.489Z

Reserved: 2026-04-07T18:13:03.529Z

Link: CVE-2026-39833

cve-icon Vulnrichment

Updated: 2026-05-22T18:58:04.074Z

cve-icon NVD

Status : Analyzed

Published: 2026-05-22T04:16:22.773

Modified: 2026-05-28T15:04:39.110

Link: CVE-2026-39833

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-28T19:15:06Z

Weaknesses