Skip to main content

rust-openssl CVE-2026-45784

| EUVDEUVD-2026-45322 MEDIUM
Incorrect Calculation of Buffer Size (CWE-131)
2026-05-19 https://github.com/rust-openssl/rust-openssl GHSA-phqj-4mhp-q6mq
5.1
CVSS 4.0 · Vendor: https://github.com/rust-openssl/rust-openssl
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Identify application using rust-openssl AES-KWP cipher operations
  2. Delivery
    Supply input with non-multiple-of-8 byte plaintext length
  3. Exploit
    Trigger cipher_update_inplace with undersized output buffer
  4. Execution
    OpenSSL writes up to 7 bytes past end of heap allocation
  5. Persist
    Corrupt adjacent heap object or allocator metadata
  6. Impact
    Achieve denial of service or attacker-influenced code execution

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Buffer size calculation
Exploitation Conditions

Exploitation requires three specific, concurrent conditions: (1) The target application must use rust-openssl versions 0.10.50-0.10.79 and specifically invoke CipherCtxRef::cipher_update_inplace - not the separate cipher_update method - with an AES key-wrap-with-padding cipher mode (EVP_aes_128_wrap_pad, EVP_aes_192_wrap_pad, or EVP_aes_256_wrap_pad); (2) the plaintext length must not be a multiple of 8 bytes; and (3) the attacker must be able to influence that plaintext length. AES-KWP is a specialized cipher mode not used in TLS, general AES-GCM/CBC/CTR operations, or most common encryption use cases, substantially limiting the affected population. Authentication requirements cannot be determined from available data, as no CVSS vector was published; the exposure surface is entirely determined by how the consuming application presents the affected code path to callers.

Impact

No CVSS score or vector is provided for this CVE, so all severity signals must be inferred from the advisory description and context. The heap corruption primitive - up to 7 bytes past the end of a Rust Vec or buffer - is constrained but can be sufficient for heap layout manipulation leading to crash or code execution depending on allocator and application behavior. The critical limiting factor is the specificity of the affected code path: AES key-wrap-with-padding is a niche cipher mode used almost exclusively in key management, PKCS#11, or CMS/S-MIME contexts; the vast majority of rust-openssl users employing AES for TLS or general encryption are entirely unaffected. Exploitation further requires attacker influence over plaintext length (not just the ciphertext). No KEV listing exists, no POC has been identified, and no EPSS data is available. The absence of CVSS data means authentication and network exposure requirements cannot be formally stated - these depend entirely on how the consuming application exposes the affected code path. Real-world risk is low for most deployments, but high for applications specifically performing AES-KWP operations on attacker-supplied data.

Exploit ScenarioDerived

An application performing AES key-wrap-with-padding decryption or encryption on attacker-supplied data - such as a key management service accepting wrapped key material over a network - calls cipher_update_inplace with a non-multiple-of-8 byte plaintext. The OpenSSL C layer writes up to 7 bytes past the end of the allocated Rust Vec into adjacent heap memory, corrupting allocator metadata or a neighboring heap object. Depending on heap layout, this could result in a controlled crash (denial of service) or, through heap grooming techniques, attacker-influenced control flow.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – May 19, 2026

Heap corruption in rust-openssl versions 0.10.50 through 0.10.79 allows attacker-controllable out-of-bounds writes of up to 7 bytes via the CipherCtxRef::cipher_update_inplace method when used with AES key-wrap-with-padding ciphers (EVP_aes_128_wrap_pad, EVP_aes_192_wrap_pad, EVP_aes_256_wrap_pad). The buffer sizing logic fails to account for AES-KWP's padding expansion when input length is not a multiple of 8, and because this occurs through FFI into native OpenSSL, Rust's memory safety guarantees do not prevent the corruption. This is a missed case from a prior fix for GHSA-xv59-967r-8726 in the same method; no public exploit has been identified at time of analysis.

RemediationAI

Upgrade the rust-openssl crate to version 0.10.80 or later, which contains the corrected buffer sizing logic per the advisory at https://github.com/rust-openssl/rust-openssl/security/advisories/GHSA-phqj-4mhp-q6mq. Update Cargo.toml to specify openssl = "0.10.80" or a compatible semver constraint such as ">=0.10.80", then run cargo update to resolve the patched version. The vendor-released patch is version 0.10.80, independently confirmed by GHSA advisory data. If an immediate upgrade is not possible, the primary compensating control is to replace calls to cipher_update_inplace with cipher_update (the non-in-place variant), which is not affected by this bug; note that this trades the performance benefit of in-place operation for additional memory allocation. Alternatively, ensure that all inputs passed to cipher_update_inplace with AES-KWP ciphers are padded to a multiple of 8 bytes before invocation, which prevents the undersized buffer condition, though this requires application-level padding logic and careful validation.

Affected VersionsENISA

rust-openssl 0.10.50, < 0.10.80

Affected Packages

cargo openssl fix: 0.10.80
euvd rust_openssl_0_10_50 fix: 0.10.80

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in cargo, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The rust-openssl crate (pkg:rust/openssl) provides Rust FFI bindings to the native OpenSSL C library. The vulnerable method CipherCtxRef::cipher_update_inplace performs symmetric cipher operations by allocating and reusing a single output buffer. AES key-wrap-with-padding (AES-KWP, RFC 5649) is an asymmetric-expansion cipher: when wrapping, it appends an 8-byte integrity check value (ICV) and pads the plaintext to the next multiple of 8 bytes, meaning output is always larger than input. For a non-multiple-of-8 input, the required output can be up to 7 bytes larger than the allocated buffer. The buffer sizing logic did not correctly account for this expansion, producing a buffer that is undersized by up to 7 bytes. CWE-131 (Incorrect Calculation of Buffer Size) is the precise root cause class: the formula used to compute the required output length was arithmetically incorrect for this cipher mode's expansion semantics. Because the write path goes through unsafe FFI into OpenSSL's C layer, Rust's ownership and bounds-checking guarantees cannot prevent the overwrite.

Know when OpenSSL gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (https://github.com/rust-openssl/rust-openssl) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N
SUSE 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L
Red Hat 5.1 MEDIUM

Primary rating from Vendor (https://github.com/rust-openssl/rust-openssl).

CVSS VectorVendor: https://github.com/rust-openssl/rust-openssl

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
CVSS changed
Jul 17, 2026 - 21:22 NVD
5.1 (MEDIUM)

DescriptionCVE.org

CipherCtxRef::cipher_update_inplace incorrectly sized output buffers when used with AES key-wrap-with-padding ciphers (EVP_aes_{128,192,256}_wrap_pad). For a non-multiple-of-8 input, OpenSSL writes up to 7 bytes past the end of the caller's buffer or Vec, producing attacker-controllable heap corruption when the plaintext length is attacker-influenced.

This only impacts users using AES key-wrap-with-padding ciphers.

This method was missed in the fix for GHSA-xv59-967r-8726

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Threat Intel
1
1 sources
Data Quality
7 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2014-0160 HIGH POC
7.5 Apr 07

The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.1 before 1.0.1g do not properly handle Heartbeat Extension packe

CVE-2021-3711 CRITICAL POC
9.8 Aug 24

In order to decrypt SM2 encrypted data an application is expected to call the API function EVP_PKEY_decrypt(). Rated cri

CVE-2014-0195 MEDIUM POC
6.8 Jun 05

The dtls1_reassemble_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0

CVE-2014-0224 HIGH POC
7.4 Jun 05

OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph

CVE-2016-0800 MEDIUM POC
5.9 Mar 01

The SSLv2 protocol, as used in OpenSSL before 1.0.1s and 1.0.2 before 1.0.2g and other products, requires a server to se

CVE-2015-0204 MEDIUM POC
4.3 Jan 09

The ssl3_get_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8zd, 1.0.0 before 1.0.0p, and 1.0.1 before 1.0.1k

CVE-2022-2068 HIGH
7.3 Jun 21

In addition to the c_rehash shell command injection identified in CVE-2022-1292, further circumstances where the c_rehas

CVE-2015-4000 LOW POC
3.7 May 21

The TLS protocol 1.2 and earlier, when a DHE_EXPORT ciphersuite is enabled on a server but not on a client, does not pro

CVE-2014-3566 LOW POC
3.4 Oct 15

The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and other products, uses nondeterministic CBC padding, which mak

CVE-2016-2107 MEDIUM POC
5.9 May 05

The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a

CVE-2015-1793 MEDIUM POC
6.5 Jul 09

The X509_verify_cert function in crypto/x509/x509_vfy.c in OpenSSL 1.0.1n, 1.0.1o, 1.0.2b, and 1.0.2c does not properly

CVE-2022-3602 HIGH
7.5 Nov 01

A buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Rated hig

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
Container suse/sl-micro/6.0/baremetal-os-container:latest Affected
Container suse/sl-micro/6.0/toolbox:latest Affected
Image SLES15-SP7-Azure-3P Image SLES15-SP7-Azure-Basic Image SLES15-SP7-Azure-Standard Image SLES15-SP7-BYOS-Azure Image SLES15-SP7-BYOS-GCE Image SLES15-SP7-CHOST-BYOS-Aliyun Image SLES15-SP7-CHOST-BYOS-Azure Image SLES15-SP7-CHOST-BYOS-EC2 Image SLES15-SP7-CHOST-BYOS-GDC Image SLES15-SP7-CHOST-BYOS-SAP-CCloud Image SLES15-SP7-EC2 Image SLES15-SP7-EC2-ECS-HVM Image SLES15-SP7-GCE Image SLES15-SP7-HPC-Azure Image SLES15-SP7-HPC-BYOS-Azure Image SLES15-SP7-HPC-BYOS-EC2 Image SLES15-SP7-HPC-BYOS-GCE Image SLES15-SP7-Hardened-BYOS-Azure Image SLES15-SP7-Hardened-BYOS-EC2 Image SLES15-SP7-Hardened-BYOS-GCE Image SLES15-SP7-SAP-Azure Image SLES15-SP7-SAP-Azure-3P Image SLES15-SP7-SAP-BYOS-Azure Image SLES15-SP7-SAP-BYOS-EC2 Image SLES15-SP7-SAP-BYOS-GCE Image SLES15-SP7-SAP-EC2 Image SLES15-SP7-SAP-GCE Image SLES15-SP7-SAP-Hardened-Azure Image SLES15-SP7-SAP-Hardened-BYOS-Azure Image SLES15-SP7-SAP-Hardened-BYOS-EC2 Image SLES15-SP7-SAP-Hardened-BYOS-GCE Image SLES15-SP7-SAP-Hardened-GCE Image SLES15-SP7-SAPCAL-Azure Image SLES15-SP7-SAPCAL-EC2 Image SLES15-SP7-SAPCAL-GCE Affected
SUSE Linux Enterprise Desktop 15 SP7 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS Fixed

References

Advisories & patches
ADVISORY https://github.com/rust-openssl/rust-openssl/security/advisories/GHSA-phqj-4mhp-q6mq ADVISORY https://vuldb.com/vuln/379962 ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:22554/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:22583/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:22589/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:22593/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:22615/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:22622/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:22624/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:22787/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:2807/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:2811/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:2825/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:2826/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:2831/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:2832/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:2975/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:2976/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:2977/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:3022/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:3026/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:3040/ ADVISORY https://www.suse.com/support/update/SUSE-SU-2026:3152/ REF https://github.com/advisories/GHSA-phqj-4mhp-q6mq REF https://github.com/rust-openssl/rust-openssl/commit/19eceb26f2404aae187e5444e65c404ebc1348a7 REF https://github.com/rust-openssl/rust-openssl/pull/2638 REF https://github.com/rust-openssl/rust-openssl/releases/tag/openssl-v0.10.80

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy