rust-openssl/rust-openssl · Security
rust-openssl: Deriver::derive and PkeyCtxRef::derive can overflow short buffers on OpenSSL 1.1.1
- GHSA ID
- GHSA-pqf5-4pqq-29f5
- CVE ID
- CVE-2026-41676
- Severity
- high
- Published
- Updated
- CVSS v4
- 7.2 · CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:U
Description
Deriver::derive (and PkeyCtxRef::derive) sets len = buf.len() and passes it as the in/out length to EVP_PKEY_derive, relying on OpenSSL to honor it. On OpenSSL 1.1.x, X25519, X448, DH and HKDF-extract ignore the incoming *keylen, unconditionally writing the full shared secret (32/56/prime-size bytes). A caller passing a short slice gets a heap/stack overflow from safe code. OpenSSL 3.x providers do check, so this only impacts older OpenSSL.
CWEs
- CWE-131 · Incorrect Calculation of Buffer Size
- CWE-787 · Out-of-bounds Write
References
- https://github.com/rust-openssl/rust-openssl/security/advisories/GHSA-pqf5-4pqq-29f5 ↗
- https://github.com/rust-openssl/rust-openssl/pull/2606 ↗
- https://github.com/rust-openssl/rust-openssl/commit/09b425e5f59a2466d806e71a83a9a449c914c596 ↗
- https://github.com/rust-openssl/rust-openssl/releases/tag/openssl-v0.10.78 ↗
- https://nvd.nist.gov/vuln/detail/CVE-2026-41676 ↗
- https://github.com/advisories/GHSA-pqf5-4pqq-29f5 ↗