beyla
beyla copied to clipboard
chore(deps): update rust crate openssl to v0.10.72 [security]
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| openssl | dependencies | patch | 0.10.66 -> 0.10.72 |
rust-openssl ssl::select_next_proto use after free
CVE-2025-24898 / GHSA-rpmj-rpgj-qmpm / RUSTSEC-2025-0004
More information
Details
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
Severity
- CVSS Score: 6.3 / 10 (Medium)
- Vector String:
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:L/VI:N/VA:L/SC:N/SI:N/SA:N
References
- https://github.com/sfackler/rust-openssl/security/advisories/GHSA-rpmj-rpgj-qmpm
- https://nvd.nist.gov/vuln/detail/CVE-2025-24898
- https://github.com/sfackler/rust-openssl/pull/2360
- https://github.com/sfackler/rust-openssl/commit/f014afb230de4d77bc79dea60e7e58c2f47b60f2
- https://crates.io/crates/openssl
- https://github.com/sfackler/rust-openssl
- https://lists.debian.org/debian-lts-announce/2025/02/msg00009.html
- https://rustsec.org/advisories/RUSTSEC-2025-0004.html
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
ssl::select_next_proto use after free
CVE-2025-24898 / GHSA-rpmj-rpgj-qmpm / RUSTSEC-2025-0004
More information
Details
In openssl versions before 0.10.70, 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.
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.
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)
});
Severity
Unknown
References
- https://crates.io/crates/openssl
- https://rustsec.org/advisories/RUSTSEC-2025-0004.html
- https://github.com/sfackler/rust-openssl/security/advisories/GHSA-rpmj-rpgj-qmpm
- https://github.com/sfackler/rust-openssl/pull/2360
This data is provided by OSV and the Rust Advisory Database (CC0 1.0).
Use-After-Free in Md::fetch and Cipher::fetch
GHSA-4fcv-w3qc-ppgg / RUSTSEC-2025-0022
More information
Details
When a Some(...) value was passed to the properties argument of either of these functions, a use-after-free would result.
In practice this would nearly always result in OpenSSL treating the properties as an empty string (due to CString::drop's behavior).
The maintainers thank quitbug for reporting this vulnerability to us.
Severity
Unknown
References
- https://crates.io/crates/openssl
- https://rustsec.org/advisories/RUSTSEC-2025-0022.html
- https://github.com/sfackler/rust-openssl/pull/2390
This data is provided by OSV and the Rust Advisory Database (CC0 1.0).
rust-openssl Use-After-Free in Md::fetch and Cipher::fetch
GHSA-4fcv-w3qc-ppgg / RUSTSEC-2025-0022
More information
Details
When a Some(...) value was passed to the properties argument of either of these functions, a use-after-free would result.
In practice this would nearly always result in OpenSSL treating the properties as an empty string (due to CString::drop's behavior).
The maintainers thank quitbug for reporting this vulnerability to us.
Severity
- CVSS Score: 6.3 / 10 (Medium)
- Vector String:
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
References
- https://github.com/sfackler/rust-openssl/pull/2390
- https://github.com/sfackler/rust-openssl/commit/87085bd67896b7f92e6de35d081f607a334beae4
- https://github.com/sfackler/rust-openssl
- https://rustsec.org/advisories/RUSTSEC-2025-0022.html
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
rust-openssl/rust-openssl (openssl)
v0.10.72
What's Changed
- make set_rsa_oaep_md visible to boringssl config by @frncs-rss in sfackler#2372
- Fix typo in openssl-sys build script by @rushilmehra in sfackler#2375
- Unify the two BoringSSL codepaths a bit and simplify init by @davidben in sfackler#2377
- pkey_ctx: Fix link to the corresponding OpenSSL function by @Jakuje in sfackler#2378
- fix test on MSRV by @alex in sfackler#2383
- Add support for AWS-LC to openssl and openssl-sys crates by @skmcgrail in sfackler#1805
- Enable additional capabilities for AWS-LC by @skmcgrail in sfackler#2386
- Use --experimental with bindgen-cli with aws-lc build by @skmcgrail in sfackler#2389
- Fixed two UAFs and bumped versions for release by @alex in sfackler#2390
New Contributors
- @Jakuje made their first contribution in sfackler#2378
- @skmcgrail made their first contribution in sfackler#1805
Full Changelog: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.71...openssl-v0.10.72
v0.10.71
What's Changed
- Expose rc2 ciphers on symm::Cipher by @alex in sfackler#2361
- add full Apache license file to openssl by @frncs-rss in sfackler#2366
- Release openssl v0.10.71 and openssl-sys v0.9.106 by @alex in sfackler#2369
New Contributors
- @frncs-rss made their first contribution in sfackler#2366
Full Changelog: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.70...openssl-v0.10.71
v0.10.70: openssl v0.10.70
What's Changed
- Attempt to fix CI by pinning to the Ubuntu 22.04 image by @alex in sfackler#2357
- Remove EC_METHOD and EC_GROUP_new for LibreSSL 4.1 by @botovq in sfackler#2356
- Test against 3.4.0 final release by @alex in sfackler#2359
- Expose
SslMethod::{dtls_client,dtls_server}by @alex in sfackler#2358 - Fix lifetimes in ssl::select_next_proto by @sfackler in sfackler#2360
Full Changelog: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.69...openssl-v0.10.70
v0.10.69: openssl v0.10.69
What's Changed
- build(deps): Update
openssl-macroto version0.1.1by @caspermeijn in sfackler#2324 - Enable set_alpn_select_callback for BoringSSL by @ViktoriiaKovalova in sfackler#2327
- Switch the test to use prime256v1 based key by @dcermak in sfackler#2330
- Expose EVP_DigestSqueeze from Hasher by @initsecret in sfackler#2275
- Expose SSL_CTX_load_verify_locations by @sfackler in sfackler#2353
New Contributors
- @caspermeijn made their first contribution in sfackler#2324
- @ViktoriiaKovalova made their first contribution in sfackler#2327
Full Changelog: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.68...openssl-v0.10.69
v0.10.68
What's Changed
- fixes #2317 -- restore compatibility with our MSRV and release openssl 0.9.68 by @alex in sfackler#2318
Full Changelog: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.67...openssl-v0.10.68
v0.10.67
What's Changed
- Added a utility function to ensure we never have an issue with 0-length slices from pointers again by @alex in sfackler#2268
- Fix CI for the latest rustc by @alex in sfackler#2271
- Add binding for EVP_DigestSqueeze by @initsecret in sfackler#2270
- libressl 4.0: const correctness for X509_LOOKUP_METHOD by @botovq in sfackler#2276
- Bump hex dev-dependency version by @alex in sfackler#2277
- Raise bindgen version by @alex in sfackler#2278
- Ensure Rsa::check_key doesn't leave errors on the stack by @alex in sfackler#2279
- Update some docs to use the corresponds macro by @rushilmehra in sfackler#2282
- Don't leave errors on the stack in
MdCtxRef::digest_verify_finalby @alex in sfackler#2283 - Adjustments for LibreSSL 4 by @botovq in sfackler#2287
- Explicit rustfmt config by @kornelski in sfackler#2285
- add basic EVP_KDF bindings by @reaperhulk in sfackler#2289
- add ossl3 thread pool bindings by @reaperhulk in sfackler#2293
- add argon2id support for ossl 3.2+ by @reaperhulk in sfackler#2290
- fix 3.2.0 thread support and simplify by @reaperhulk in sfackler#2294
- add libctx arg to argon2id by @reaperhulk in sfackler#2295
- support using threads in argon2id by @reaperhulk in sfackler#2296
- Ensure beginning and end of the error output is readable by @kornelski in sfackler#2284
- Test against 3.4.0-alpha1 by @sfackler in sfackler#2302
- Resolve clippy warnings from nightly by @alex in sfackler#2310
- fixes #2311 -- silencer resolver warnings by @alex in sfackler#2312
- Bump to 3.4.0-beta1 by @sfackler in sfackler#2313
- LibreSSL 4.0.0 by @botovq in sfackler#2315
- Release openssl v0.10.67 and openssl-sys v0.9.104 by @alex in sfackler#2316
New Contributors
- @initsecret made their first contribution in sfackler#2270
- @rushilmehra made their first contribution in sfackler#2282
- @kornelski made their first contribution in sfackler#2285
Full Changelog: https://github.com/sfackler/rust-openssl/compare/openssl-v0.10.66...openssl-v0.10.67
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, 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
Need help?
You can ask for more help in the following Slack channel: #proj-renovate-self-hosted. In that channel you can also find ADR and FAQ docs in the Resources section.
Codecov Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 49.83%. Comparing base (7cc5581) to head (86f08fb).
Additional details and impacted files
@@ Coverage Diff @@
## main #2314 +/- ##
==========================================
+ Coverage 43.30% 49.83% +6.52%
==========================================
Files 38 38
Lines 2974 2974
==========================================
+ Hits 1288 1482 +194
+ Misses 1573 1343 -230
- Partials 113 149 +36
| Flag | Coverage Δ | |
|---|---|---|
| integration-test | 16.76% <ø> (?) |
|
| integration-test-vm-${ARCH}-${KERNEL_VERSION} | 0.00% <ø> (?) |
|
| k8s-integration-test | 2.62% <ø> (?) |
|
| oats-test | 0.00% <ø> (?) |
|
| unittests | 43.30% <ø> (ø) |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
:rocket: New features to boost your workflow:
- :snowflake: Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
- :package: JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
Renovate Ignore Notification
Because you closed this PR without merging, Renovate will ignore this update (0.10). You will get a PR once a newer version is released. To ignore this dependency forever, add it to the ignoreDeps array of your Renovate config.
If you accidentally closed this PR, or if you changed your mind: rename this PR to get a fresh replacement PR.