CVE-2025-68121

Unexpected session resumption in crypto/tls

Published Feb 5, 2026 CVSS 3.1 · 9.1 Critical EPSS < 1% KEV · Not listed
Description
During session resumption in crypto/tls, if the underlying Config has its ClientCAs or RootCAs fields mutated between the initial handshake and the resumed handshake, the resumed handshake may succeed when it should have failed. This may happen when a user calls Config.Clone and mutates the returned Config, or uses Config.GetConfigForClient. This can cause a client to resume a session with a server that it would not have resumed with during the initial handshake, or cause a server to resume a session with a client that it would not have resumed with during the initial handshake.

Analysis

AI-generated

Technical impact

The bug resides in the session resumption path of Go's crypto/tls library. If a configuration object is altered after a successful handshake – for instance by cloning the Config or using GetConfigForClient – the renewed handshake may proceed even though the new configuration would not have permitted the original connection. This flaw is mapped to CWE-295, indicating improper certificate validation. The result is that a client may resume a session with a server it would not have connected to initially, or a server may resume with a client that would otherwise be rejected.

Affected Systems

Vulnerable systems are those running Go 1.26.0 release candidates 1 and 2, or any builds that include the unpatched crypto/tls package. The flaw affects the standard library's TLS implementation and may impact any Go application that relies on session resumption in secure communication.

Risk and Exploitability

CVSS score 9.1 indicates critical severity, but the EPSS score <1% suggests low likelihood of exploitation at this time. The vulnerability is not yet listed in CISA's KEV catalog. Attackers would need to be able to influence the TLS configuration between handshakes or have control over the configuration flow, making the attack vector indirect. However, the flaw exposes a subtle trust slip that could enable unauthorized session resumption if the application does not enforce a static configuration per session.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to Go 1.26.0 RC2 or later to apply the official fix for crypto/tls.
  • Review application code to ensure that Configuration objects are not mutated between the initial handshake and any subsequent resumed handshake; if mutation is required, disable session resumption for affected connections.
  • Enforce strict client and server certificate validation on each handshake, including resumed ones, to mitigate the risk of implicit trust due to configuration changes.

Generated by OpenCVE AI on April 29, 2026 at 17:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories available
History
Type Values Removed Values Added
Metrics cvssV3_1

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

ssvc

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

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'}

Type Values Removed Values Added
Metrics cvssV3_1

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

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

cvssV3_1

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

ssvc

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

Type Values Removed Values Added
First Time appeared Golang
Golang go
CPEs cpe:2.3:a:golang:go:*:*:*:*:*:*:*:*
cpe:2.3:a:golang:go:1.26.0:rc1:*:*:*:*:*:*
cpe:2.3:a:golang:go:1.26.0:rc2:*:*:*:*:*:*
Vendors & Products Golang
Golang go
Type Values Removed Values Added
Weaknesses CWE-295
Metrics cvssV3_1

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

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
First Time appeared Go Standard Library
Go Standard Library crypto Tls
Vendors & Products Go Standard Library
Go Standard Library crypto Tls
Type Values Removed Values Added
Description During session resumption in crypto/tls, if the underlying Config has its ClientCAs or RootCAs fields mutated between the initial handshake and the resumed handshake, the resumed handshake may succeed when it should have failed. This may happen when a user calls Config.Clone and mutates the returned Config, or uses Config.GetConfigForClient. This can cause a client to resume a session with a server that it would not have resumed with during the initial handshake, or cause a server to resume a session with a client that it would not have resumed with during the initial handshake.
Title Unexpected session resumption in crypto/tls
References
Weaknesses
  • CWE-295

    Improper Certificate Validation

Sources

Status
PUBLISHED
Assigner
Go
Published
Updated
Apr 29, 2026, 1:29 PM
Reserved
Dec 15, 2025, 4:48 PM
Status
Modified
Published
Feb 5, 2026, 6:16 PM
Modified
Jun 17, 2026, 9:58 AM
Severity
Moderate
Public date
Feb 5, 2026, 5:48 PM