RUSTSEC-2026-0413None▾ SunlitUse-after-free of caller-owned server name in client connection constructors
▾ Sunlit zone — Low / medium · no exploitation signal
impact 2.8 · likelihood 0 · exploitation 0
Need a working PoC? Pro members can cast a request and our team develops one — it lands right here.
Disclosure to exploitation, from the record and what we observed since indexing it.
Disclosed via OSV
Last analysed / modified upstream
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.
rustls-ffi >= 0.12.0, < 0.15.7Upgrade to a patched release:
rustls-ffi 0.15.7