CVE-2025-68121
CRITICALCVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Lifecycle Timeline
4Description
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
Critical certificate validation bypass in Go crypto/tls during session resumption. If ClientCAs or RootCAs fields are mutated between creating the config and resuming a session, the TLS stack uses the modified trust store, potentially accepting certificates from unintended CAs. CVSS 10.0, PoC available, patch available.
Technical Context
CWE-295 in Go crypto/tls. When a TLS Config's ClientCAs or RootCAs fields are mutated after initial creation but before session resumption, the resumed session uses the mutated trust store rather than the original, bypassing intended certificate validation.
Affected Products
['Go crypto/tls (all versions with this bug)']
Remediation
Apply Go patch. Never mutate Config.ClientCAs/RootCAs after creation — create new Config objects instead. PoC available for testing.
Priority Score
Vendor Status
Share
External POC / Exploit Code
Leaving vuln.today