{"id":"CVE-2026-123609","aliases":["GHSA-c8m5-c952-6cm4","RUSTSEC-2026-0346"],"title":"Rustls: Session Debug formatting exposes TLS master secrets and resumption PSKs","summary":"Rustls: Session Debug formatting exposes TLS master secrets and resumption PSKs","severity":"medium","cvss":4,"cvssVector":"CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:U/C:H/I:N/A:N","vendor":"rustls","product":"rustls","ecosystem":"rust","affected":["rustls < 0.23.46","rustls >= 0.24.0-dev.1, < 0.24.0-dev.2"],"patched":["rustls 0.23.46","rustls 0.24.0-dev.2"],"published":"2026-10-27","updated":"2026-11-08","sourceUpdated":"2026-11-08T10:55:36.514447652Z","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/GHSA-c8m5-c952-6cm4","references":[{"url":"https://github.com/rustls/rustls/security/advisories/GHSA-c8m5-c952-6cm4"},{"url":"https://github.com/rustls/rustls/pull/3299"},{"url":"https://github.com/rustls/rustls/pull/3354"},{"url":"https://github.com/rustls/rustls/commit/dcdb9464d376f45f42a94a5f837cda1506449f23"},{"url":"https://github.com/rustls/rustls/commit/f5f7bf5078a7edcbd81a9e82a97f2bd14dc1c855"},{"url":"https://github.com/rustls/rustls"},{"url":"https://github.com/rustls/rustls/releases/tag/v/0.23.46"},{"url":"https://rustsec.org/advisories/RUSTSEC-2026-0346.html"},{"url":"https://crates.io/crates/rustls"},{"url":"https://www.vulncheck.com/advisories/rustls-before-0.23.46-and-0.24.0-dev.1-before-0.24.0-dev.2-secret-exposure-via-debug","label":"VulnCheck Advisory: Rustls before 0.23.46 and 0.24.0-dev.1 before 0.24.0-dev.2 Secret Exposure via Debug"}],"tags":["osv","rust","cve.org"],"epss":0.00101,"epssPercentile":0.00903,"cwe":["CWE-212"],"ingestedAt":"2026-11-08T02:43:18.639Z","slug":"CVE-2026-123609","body":"## Overview\n\n### Summary\n\nFormatting a client session value with Debug exposes its TLS 1.2 master secret or TLS 1.3 resumption PSK. A custom session store that logs these values can disclose keys to readers of the logs. Ordinary connection and built-in cache diagnostics remain redacted, and the session-store interface already warns that its values are sensitive.\n\n### Details\n\nDerived formatters traverse the session's secret-bearing fields. This conflicts with the project's explicit [key-material redaction policy](https://github.com/rustls/rustls/blob/99f2358cae2954837dbb866faf6727de75489ab9/SECURITY.md#boundary-public-api).\n\n### Proof of concept\n\nCustom `ClientSessionStore` implementations could leak secret data by using the provided `Tls12ClientSessionValue` or `Tls13ClientSessionValue` in a way that triggers its implementation of the `Debug` trait.\n\n### Impact\n\nSuch store implementations could leak the master secret for the TLS connection.\n\n### Acknowledgement\nThanks to OpenAI [OutboundDisclosures@openai.com](mailto:OutboundDisclosures@openai.com) for the disclosure.\n\n## Affected packages\n\n- `rustls < 0.23.46`\n- `rustls >= 0.24.0-dev.1, < 0.24.0-dev.2`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `rustls 0.23.46`\n- `rustls 0.24.0-dev.2`","depth":"sunlit","depthScore":22,"depthScoreParts":{"impact":22,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}