CVE-2025-68121: Go crypto/tls session resumption certificate validation flaw
Go's crypto/tls can accept a resumed TLS session after the ClientCAs or RootCAs fields of its Config change, when the resumed handshake should have failed. The record maps it to CWE-295 and lists an NVD CVSS 3.1 score of 10, with affected ranges below 1.24.13, from 1.25.0 to below 1.25.7, and two 1.26 pre-releases. The record does not list the CVE in CISA KEV, and no confirmed exploitation appears in the sources consulted.
Overview
Go's crypto/tls package can accept a resumed TLS session when the ClientCAs or RootCAs fields of the underlying Config changed after the initial handshake. The Go vulnerability entry GO-2026-4337 and the patch change are the vendor references listed for this CVE.
Impact
- A client may resume a session with a server it would not have resumed with during the initial handshake.
- A server may resume a session with a client it would not have resumed with during the initial handshake.
- The record classifies the weakness as CWE-295, Improper Certificate Validation, and lists an NVD CVSS 3.1 score of 10 with high confidentiality, integrity and availability impact in the vector. A second provider in the record gives 9.1.
Affected products and versions
- Golang Go versions below 1.24.13.
- Golang Go versions from 1.25.0 up to, but not including, 1.25.7.
- Golang Go 1.26.0-rc1 and 1.26.0-rc2.
The record does not list fixed releases directly. Based on the affected ranges, releases 1.24.13 and 1.25.7 appear to be the first unaffected versions in their branches, which is an inference. Whether the 1.26 pre-releases were fixed in a later pre-release or in a final release is not stated.
Exploitation status
The record shows that this CVE is not listed in CISA KEV, so it is not described here as being actively exploited. No confirmed exploitation appears in the sources consulted. The reference list tags the Go issue 77217 as Exploit and Issue Tracking, but its content was not reviewed for this analysis.
Remediation and mitigation
- Upgrade the Go toolchain to 1.24.13 or 1.25.7 or a later release in the same branch, and check the vendor entry for the exact fixed release.
- Rebuild applications and services that compile against the standard library, so that the patched runtime is used.
- Move pre-release 1.26 builds to a release that the vendor marks as fixed.
- Until patching is possible, avoid changing ClientCAs or RootCAs on a Config that is in use for session resumption, and review code that uses Config.Clone or Config.GetConfigForClient.
Detection guidance
- Inventory services and binaries built with affected Go versions, using build metadata and dependency records.
- Prioritize TLS-facing services whose trust configuration changes at runtime.
- Where logs record TLS session resumption, review them for unexpected resumption between parties that were not previously paired. This is a high-level indicator and not a confirmed signature.
Limitations of the available information
- The record does not describe a proof of concept, a specific attack scenario or observed attacks.
- The record contains two CVSS 3.1 scores, 10 from NVD and 9.1 from another provider. This analysis reports both and does not choose between them.
- The record does not state the fixed release for the 1.26 pre-releases.
- The record title was empty, so the title was written for this portal.
Frequently asked questions
What does CVE-2025-68121 allow?
According to the record, a resumed TLS handshake in Go crypto/tls can succeed when the ClientCAs or RootCAs fields of the Config changed after the initial handshake, when it should have failed. The record does not describe an exploit or observed attacks.
Which Go versions are listed as affected?
The record lists Go versions below 1.24.13, versions from 1.25.0 up to but not including 1.25.7, and the 1.26.0-rc1 and 1.26.0-rc2 pre-releases.
This analysis was drafted with AI assistance from verified source data and automatically checked against it.