Skip to content

Update Rust crate openssl to v0.10.70 [SECURITY]#21

Open
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/crate-openssl-vulnerability
Open

Update Rust crate openssl to v0.10.70 [SECURITY]#21
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/crate-openssl-vulnerability

Conversation

@renovate
Copy link
Copy Markdown

@renovate renovate bot commented Mar 31, 2026

This PR contains the following updates:

Package Type Update Change
openssl dependencies patch 0.10.300.10.70

GitHub Vulnerability Alerts

GHSA-6hcf-g6gr-hhcr

These functions would crash when the context argument was None with certain extension types.

Thanks to David Benjamin (Google) for reporting this issue.

GHSA-3gxf-9r58-2ghg

OpenSSL has a modified bit that it can set on on X509_NAME objects. If this bit is set then the object is not thread-safe even when it appears the code is not modifying the value.

Thanks to David Benjamin (Google) for reporting this issue.

GHSA-9qwg-crg9-m2vc

SubjectAlternativeName and ExtendedKeyUsage arguments were parsed using the OpenSSL function X509V3_EXT_nconf. This function parses all input using an OpenSSL mini-language which can perform arbitrary file reads.

Thanks to David Benjamin (Google) for reporting this issue.

CVE-2023-53159

When this function was passed an empty string, openssl would attempt to call strlen on it, reading arbitrary memory until it reached a NUL byte.

GHSA-xphf-cx8h-7q9g

This function returned a reference into an OpenSSL datastructure, but there was no way to ensure OpenSSL would not mutate the datastructure behind one's back.

Use of this function should be replaced with X509StoreRef::all_certificates.

GHSA-q445-7m23-qrmw

Previously, MemBio::get_buf called slice::from_raw_parts with a null-pointer, which violates the functions invariants, leading to undefined behavior. In debug builds this would produce an assertion failure. This is now fixed.

CVE-2025-24898

Impact

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 server 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.

Patches

openssl 0.10.70 fixes the signature of ssl::select_next_proto to properly constrain the output buffer's lifetime to that of both input buffers.

Workarounds

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 example:

Not vulnerable - the server buffer has a 'static lifetime:

builder.set_alpn_select_callback(|_, client_protos| {
    ssl::select_next_proto(b"\x02h2", client_protos).ok_or_else(AlpnError::NOACK)
});

Not vulnerable - the server buffer outlives the handshake:

let server_protos = b"\x02h2".to_vec();
builder.set_alpn_select_callback(|_, client_protos| {
    ssl::select_next_proto(&server_protos, client_protos).ok_or_else(AlpnError::NOACK)
});

Vulnerable - the server buffer is freed when the callback returns:

builder.set_alpn_select_callback(|_, client_protos| {
    let server_protos = b"\x02h2".to_vec();
    ssl::select_next_proto(&server_protos, client_protos).ok_or_else(AlpnError::NOACK)
});

References

https://github.com/sfackler/rust-openssl/pull/2360


Release Notes

rust-openssl/rust-openssl (openssl)

v0.10.70: openssl v0.10.70

Compare Source

What's Changed

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.69...openssl-v0.10.70

v0.10.69: openssl v0.10.69

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.68...openssl-v0.10.69

v0.10.68

Compare Source

What's Changed

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.67...openssl-v0.10.68

v0.10.67

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.66...openssl-v0.10.67

v0.10.66

Compare Source

What's Changed

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.65...openssl-v0.10.66

v0.10.65

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.64...openssl-v0.10.65

v0.10.64

Compare Source

What's Changed

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.63...openssl-v0.10.64

v0.10.63

Compare Source

What's Changed

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.62...openssl-v0.10.63

v0.10.62

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.61...openssl-v0.10.62

v0.10.61: openssl v0.10.61

Compare Source

v0.10.60

Compare Source

What's Changed

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.59...openssl-v0.10.60

v0.10.59

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.58...openssl-v0.10.59

v0.10.58

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.57...openssl-v0.10.58

v0.10.57

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.56...openssl-v0.10.57

v0.10.56: openssl v0.10.56

Compare Source

v0.10.55

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.54...openssl-v0.10.55

v0.10.54

Compare Source

What's Changed

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.53...openssl-v0.10.54

v0.10.53

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.52...openssl-v0.10.53

v0.10.52

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.51...openssl-v0.10.52

v0.10.51

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.50...openssl-v0.10.51

v0.10.50: openssl v0.10.50

Compare Source

v0.10.49: openssl v0.10.49

Compare Source

v0.10.48: openssl v0.10.48

Compare Source

What's Changed

New Contributors

Full Changelog: rust-openssl/rust-openssl@openssl-v0.10.47...openssl-v0.10.48

v0.10.47: openssl v0.10.47

Compare Source

v0.10.46: openssl v0.10.46

Compare Source

v0.10.45: openssl v0.10.45

Compare Source

v0.10.44: openssl v0.10.44

Compare Source

v0.10.43: openssl v0.10.43

Compare Source

v0.10.42: openssl v0.10.42

Compare Source

v0.10.41: openssl v0.10.41

Compare Source

v0.10.40: openssl v0.10.40

Compare Source

v0.10.39: openssl v0.10.39

Compare Source

v0.10.38: openssl v0.10.38

Compare Source

v0.10.37: openssl v0.10.37

Compare Source

v0.10.36: openssl v0.10.36

Compare Source

v0.10.35: openssl v0.10.35

Compare Source

v0.10.34: openssl v0.10.34

Compare Source

v0.10.33: openssl v0.10.33

Compare Source

v0.10.32: openssl v0.10.32

Compare Source

v0.10.31: openssl v0.10.31

Compare Source


Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants