CVE-2026-9076

Out-of-Bounds Read in CMS Password-Based Decryption

HIGH
7.5
CVSS Score
Published: June 9, 2026 at 04:03 PM UTC
Updated: July 23, 2026 at 07:32 PM UTC
1 product affected across 1 vendorOpenSSL

Using OpenSSL by OpenSSL?

Get instant alerts when new vulnerabilities affect OpenSSL - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.5
Exploit prediction
EPSS 0.7%
SSVC
No known exploit

Description

Issue summary: When CMS password-based decryption (RFC 3211 / PWRI key unwrap) processes attacker-supplied CMS data, an attacker-chosen stream-mode KEK cipher can trigger a heap out-of-bounds read in kek_unwrap_key(). Impact summary: A heap buffer over-read may trigger a crash which leads to Denial of Service for an application if the input buffer ends at a memory page boundary and the following page is unmapped. There is no information disclosure as the over-read bytes are not revealed to the attacker. The key unwrapping function performs a check-byte test as specified in the RFC that reads 7 bytes from a heap allocation that is based on the wrapped key length from the message. There is a minimum length check based on the block length of the wrapping cipher. However the cipher is selected from an OID carried in the attacker's PWRI keyEncryptionAlgorithm with no requirement that the cipher be a block cipher. When an attacker selects a stream-mode cipher the guard will be ineffective and the allocated buffer containing the unwrapped key can be too small to fit the check-bytes specified in the RFC and a buffer over-read can happen. Applications calling CMS_decrypt() or CMS_decrypt_set1_password() (equivalently openssl cms -decrypt -pwri_password ...) on untrusted CMS data are vulnerable to this issue. No password knowledge is required: the over-read happens during the unwrap attempt before any authentication succeeds. The over-read is limited to a few bytes and is not written to output, so there is no information disclosure. Triggering a crash requires the allocation to border unmapped memory, which is unlikely with the normal allocator. The FIPS modules are not affected by this issue.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

1.0.2 ≤ v < 1.0.2zq1.1.1 ≤ v < 1.1.1zh3.0.0 ≤ v < 3.0.213.4.0 ≤ v < 3.4.63.5.0 ≤ v < 3.5.73.6.0 ≤ v < 3.6.34.0.0 ≤ v < 4.0.11.0.21.1.13.0.03.4.03.5.03.6.04.0.0
Affected range stops below 1.0.2zq, so it looks safe — our inference, not a vendor statement
Affected range stops below 1.1.1zh, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.0.21, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.4.6, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.5.7, so it looks safe — our inference, not a vendor statement
Affected range stops below 3.6.3, so it looks safe — our inference, not a vendor statement
Affected range stops below 4.0.1, so it looks safe — our inference, not a vendor statement

SSVC — Action Prioritization

SSVCNo known exploitAutomatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

7.5HIGHCISA-ADP
Attack Vector
NETWORK
Complexity
LOW
Privileges
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-125

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card