Description
### Summary
Formatting 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.
### Details
Derived 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).
### Proof of concept
Custom `ClientSessionStore` implementations could leak secret data by using the provided `Tls12ClientSessionValue` or `Tls13ClientSessionValue` in a way that triggers its implementation of the `Debug` trait.
### Impact
Such store implementations could leak the master secret for the TLS connection.
### Acknowledgement
Thanks to OpenAI [OutboundDisclosures@openai.com](mailto:OutboundDisclosures@openai.com) for the disclosure.
References
- https://github.com/rustls/rustls/security/advisories/GHSA-c8m5-c952-6cm4 web
- https://github.com/rustls/rustls/pull/3299 web
- https://github.com/rustls/rustls/pull/3354 web
- https://github.com/rustls/rustls/commit/dcdb9464d376f45f42a94a5f837cda1506449f23 web
- https://github.com/rustls/rustls/commit/f5f7bf5078a7edcbd81a9e82a97f2bd14dc1c855 web
- https://github.com/rustls/rustls package
- https://github.com/rustls/rustls/releases/tag/v/0.23.46 web
- https://rustsec.org/advisories/RUSTSEC-2026-0346.html web