RustSec logo

History ⋅ Edit ⋅ JSON (OSV)

RUSTSEC-2026-0413

Use-after-free of caller-owned server name in client connection constructors

Reported
Issued
Package
rustls-ffi (crates.io)
Type
Vulnerability
Categories
Aliases
References
Patched
  • >=0.15.7
Unaffected
  • <0.12.0

Description

In rustls-ffi 0.12.0 through 0.15.6, rustls_client_connection_new() and rustls_client_connection_new_alpn() retained a reference to the caller's server_name buffer after returning, rather than copying it. The API documentation did not require the buffer to outlive the call and as a result if the caller freed or reused the buffer, later TLS processing read freed memory.

Clients that free or reuse the server_name buffer after the constructor returns are affected. This is most likely for language bindings that pass temporary strings. Callers that keep the server_name buffer alive for the lifetime of the rustls_client_config are not affected.

Versions 0.12.0 through 0.15.6 are affected. Version 0.15.7+ changed these APIs to copy the input buffer.

Advisory available under CC0-1.0 license.