GitHub Advisoryadvisory · crates.io
GHSA-c8m5-c952-6cm4 Rustls: Session Debug formatting exposes TLS master secrets and resumption PSKs
MEDIUM
Official page ↗
- Ecosystem
- crates.io
- Packages
- rustls
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:L/AC:H/PR:H/UI:R/S:U/C:H/I:N/A:N
- Weaknesses
- CWE-212
- Reviewed
- 2026-10-27
Affected packages
• crates.io rustls: < 0.23.46 → fixed in 0.23.46
• crates.io rustls: >= 0.24.0-dev.1, < 0.24.0-dev.2 → fixed in 0.24.0-dev.2
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.
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 [email protected] for the disclosure.
Related
Weakness · CWE (1)
- CWE-212 Improper Removal of Sensitive Information Before Storage or Transfer weakness
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