- Reported
-
- Issued
-
- Package
-
openssl
(crates.io)
- Type
-
Vulnerability
- Categories
-
- Keywords
-
#ssl
#psk
#dtls
#cookie
#out-of-bounds-read
- Aliases
-
- References
-
- Patched
-
- Unaffected
-
- Affected Functions
- Version
openssl::ssl::SslContextBuilder::set_cookie_generate_cb
-
openssl::ssl::SslContextBuilder::set_psk_callback
-
openssl::ssl::SslContextBuilder::set_psk_client_callback
-
openssl::ssl::SslContextBuilder::set_psk_server_callback
-
openssl::ssl::SslContextBuilder::set_stateless_cookie_generate_cb
-
Description
The callbacks installed with SslContextBuilder::set_psk_client_callback (and its deprecated alias set_psk_callback), set_psk_server_callback, set_cookie_generate_cb and set_stateless_cookie_generate_cb each fill a &mut [u8] buffer and return how many bytes they wrote. The FFI trampolines handed that returned length straight to OpenSSL without checking it against the size of the buffer.
A callback that returns a length larger than its buffer makes OpenSSL read past the end of the buffer. For the cookie callbacks the cookie is sent to the peer, so adjacent memory can be disclosed over the network.
0.10.78 compares the returned length with the buffer size and treats a larger value as a callback failure.
Advisory available under CC0-1.0
license.