7.5High

CVE-2026-63072Heap Buffer Overflow in CMS Key Unwrapping

OpenSSL OpenSSL Published: (2 months ago)

Description

Issue summary: OpenSSL CMS decryption sizes the key-unwrap output buffer based on querying the unwrapped key size, but the AES-WRAP-PAD unwrap primitive can write and cleanse more bytes than that query reports, causing an 8-byte out-of-bounds heap write. Impact summary: An attacker who supplies a crafted CMS message can trigger a deterministic 8-byte out-of-bounds heap write when the victim decrypts it with CMS_decrypt(), corrupting the heap and typically resulting in a Denial of Service. CWE: CWE-787: Out-of-bounds Write Description: The key-wrap OID is potentially attacker-controlled on the wire. CMS unwrapping allows both id-aesNNN-wrap-pad and id-aesNNN-wrap ciphers. An attacker can take a legitimate message and change a single OID byte to select the padded variant while leaving the message otherwise valid. Since the unwrap key is derived from the recipient's private operation (ECDH key agreement or ML-KEM decapsulation), the RFC 5649 integrity check cannot pass, and the decryption fails with integrity failure. The write is a fixed-size (8-byte), fixed-value (zero) heap overflow immediately past the allocation, requires no special configuration, and is reachable from the public CMS_decrypt() function. The consequence is a heap corruption leading to a Denial of Service. The fix in the CMS code sizes the unwrap output buffer for the worst case so a failed unwrap cannot write past the allocation. FIPS impact: no As the CMS code lives outside the FIPS module boundary, no FIPS modules are affected by this CVE.

Weakness (CWE): CWE-787

Data: CVE.org, NVD, CISA KEV, FIRST EPSS, Ubuntu. Published as the sources state it, in English.

Affected products and versions

VendorProductVersions
OpenSSL OpenSSL 4.0.0 – < 4.0.2, 3.6.0 – < 3.6.4, 3.5.0 – < 3.5.8, 3.4.0 – < 3.4.7, 3.0.0 – < 3.0.22, 1.1.1 – < 1.1.1zi

References and patches

CPE matches (NVD) (5)

  • cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* ≥ 3.0.0 < 3.0.22
  • cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* ≥ 3.4.0 < 3.4.7
  • cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* ≥ 3.5.0 < 3.5.8
  • cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* ≥ 3.6.0 < 3.6.4
  • cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:* ≥ 4.0.0 < 4.0.2