In affected versions ssl::select_next_proto can return a slice pointing
into the server argument's buffer but with a lifetime bound to the
client argument. In situations where the sever buffer's lifetime is
shorter than the client buffer's, this can cause a use after free.
This could cause the server to crash or to return arbitrary memory
contents to the client. This security update fixes the signature of
ssl::select_next_proto to properly constrain the output buffer's lifetime
to that of both input buffers. In standard usage of ssl::select_next_proto
in the callback passed to SslContextBuilder::set_alpn_select_callback,
code is only affected if the server buffer is constructed within the
callback.
For Debian 11 bullseye, this problem has been fixed in version
0.10.29-1+deb11u1.
We recommend that you upgrade your rust-openssl packages.
For the detailed security status of rust-openssl please refer to
its security tracker page at:
https://security-tracker.debian.org/tracker/source-package/rust-openssl
Get the latest Linux and open source security news straight to your inbox.