Executive brief
rust-openssl is a library that allows Rust applications to use OpenSSL for secure communications. A flaw in how the library handles security callbacks could allow a remote attacker to trigger a memory leak, potentially exposing sensitive data from the application's memory to the network. This affects applications using specific features like Pre-Shared Keys (PSK) or stateless cookies.
Technical details
A buffer over-read vulnerability exists in rust-openssl's FFI trampolines for SslContextBuilder::set_psk_client_callback, set_psk_server_callback, set_cookie_generate_cb, and set_stateless_cookie_generate_cb. The library forwarded the usize length returned by user-provided closures directly to OpenSSL without verifying it against the actual size of the destination buffer (&mut [u8]). An attacker interacting with a service using these callbacks could cause OpenSSL to read past the intended buffer, leaking adjacent memory into TLS handshake messages like HelloVerifyRequest or PSK exchanges. The issue is fixed in version 0.10.78 by clamping the returned length to the buffer capacity.
Affected products
- rust-openssl project rust-openssl >= 0.9.24, < 0.10.78
Timeline
- 2026-04-19: patched: Fix committed and version 0.10.78 released.
- 2026-04-24: advisory: Security advisory published.
References
- https://github.com/rust-openssl/rust-openssl/commit/1d109020d98fff2fb2e45c39a373af3dff99b24c
- https://github.com/rust-openssl/rust-openssl/pull/2607
- https://github.com/rust-openssl/rust-openssl/releases/tag/openssl-v0.10.78
- https://github.com/rust-openssl/rust-openssl/security/advisories/GHSA-hppc-g8h3-xhp3