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.
Mitigation
Minimal update. May introduce new vulnerabilities or breaking changes.
|
 debian 11 | | =1.1.1k-1 || =1.1.1k-1+deb11u1 || =1.1.1k-1+deb11u2 || =1.1.1l-1 || =1.1.1m-0+deb11u1 || =1.1.1m-1 || =1.1.1n-0+deb11u1 || =1.1.1n-0+deb11u2 || =1.1.1n-0+deb11u3 || =1.1.1n-0+deb11u4 || =1.1.1n-0+deb11u5 || =1.1.1n-0+deb11u6 || =1.1.1n-1 || =1.1.1o-1 || =1.1.1v-0~deb11u1 || =1.1.1w-0+deb11u1 || =1.1.1w-0+deb11u2 || =1.1.1w-0+deb11u3 || =1.1.1w-0+deb11u4 || =1.1.1w-0+deb11u5 || =1.1.1w-0+deb11u6 || =1.1.1w-0+deb11u7 || =1.1.1w-0+deb11u8 || =1.1.1w-0~deb11u1 || =3.0.0-1 || =3.0.0~~alpha1-1 || =3.0.0~~alpha13-1 || =3.0.0~~alpha13-2 || =3.0.0~~alpha15-1 || =3.0.0~~alpha16-1 || =3.0.0~~alpha3-1 || =3.0.0~~alpha4-1 || =3.0.0~~beta1-1 || =3.0.0~~beta2-1 || =3.0.1-1 || =3.0.10-1 || =3.0.10-1~deb12u1 || =3.0.11-1 || =3.0.11-1~deb12u1 || =3.0.11-1~deb12u2 || =3.0.12-1 || =3.0.12-2 || =3.0.13-1~deb12u1 || =3.0.13-1~deb12u2 || =3.0.14-1~deb12u1 || =3.0.14-1~deb12u2 || =3.0.15-1~deb12u1 || =3.0.16-1~deb12u1 || =3.0.17-1~deb12u1 || =3.0.17-1~deb12u2 || =3.0.17-1~deb12u3 || =3.0.18-1~deb12u1 || =3.0.18-1~deb12u2 || =3.0.19-1~deb12u1 || =3.0.19-1~deb12u2 || =3.0.2-1 || =3.0.20-1~deb12u1 || =3.0.20-1~deb12u2 || =3.0.3-1 || =3.0.3-2 || =3.0.3-2+ia64 || =3.0.3-3 || =3.0.3-4 || =3.0.3-5 || =3.0.3-6 || =3.0.3-7 || =3.0.3-8 || =3.0.4-1 || =3.0.4-2 || =3.0.5-1 || =3.0.5-2 || =3.0.5-3 || =3.0.5-4 || =3.0.7-1 || =3.0.7-2 || =3.0.8-1 || =3.0.9-1 || =3.1.0-1 || =3.1.1-1 || =3.1.2-1 || =3.1.3-1 || =3.1.4-1 || =3.1.4-2 || =3.1.5-1 || =3.1.5-1.1 || =3.1.5-1.1+hurd.1 || =3.2.0-1 || =3.2.0-2 || =3.2.1-1 || =3.2.1-1.1~exp1 || =3.2.1-2 || =3.2.1-3 || =3.2.2-1 || =3.3.0-1 || =3.3.0~beta1-1 || =3.3.1-1 || =3.3.1-2 || =3.3.1-5 || =3.3.1-6 || =3.3.1-7 || =3.3.2-1 || =3.3.2-2 || =3.4.0-1 || =3.4.0-2 || =3.4.0~~beta1-1 || =3.4.0~~beta1-2 || =3.4.1-1 || =3.5.0-1 || =3.5.0-2 || =3.5.0-3 || =3.5.0~~alpha1-1 || =3.5.0~~beta1-1 || =3.5.1-1 || =3.5.2-1 || =3.5.3-1 || =3.5.4-1 || =3.5.4-1~deb13u1 || =3.5.4-1~deb13u2 || =3.5.5-1 || =3.5.5-1~deb13u1 || =3.5.5-1~deb13u2 || =3.5.6-1~deb13u1 || =3.5.6-1~deb13u2 || =3.5.7-1~deb13u1 || =3.5.7-1~deb13u2 || =3.6.0-1 || =3.6.0-2 || =3.6.0~~alpha1-1 || =3.6.0~~beta1-1 || =3.6.1-1 || =3.6.1-2 || =3.6.1-3 || =3.6.2-1 || =3.6.3-1 || =3.6.4-1 || =4.0.0-1 || =4.0.0~alpha1-1 || =4.0.0~beta1-1 || =4.0.1-1 || =4.0.2-1 | - |
 debian 14 | | =3.5.1-1 || =3.5.2-1 || =3.5.3-1 || =3.5.4-1 || =3.5.4-1~deb13u1 || =3.5.4-1~deb13u2 || =3.5.5-1 || =3.5.5-1~deb13u1 || =3.5.5-1~deb13u2 || =3.5.6-1~deb13u1 || =3.5.6-1~deb13u2 || =3.5.7-1~deb13u1 || =3.5.7-1~deb13u2 || =3.6.0-1 || =3.6.0-2 || =3.6.0~~alpha1-1 || =3.6.0~~beta1-1 || =3.6.1-1 || =3.6.1-2 || =3.6.1-3 || =3.6.2-1 || =3.6.3-1 || =3.6.4-1 || =4.0.0-1 || =4.0.0~alpha1-1 || =4.0.0~beta1-1 || =4.0.1-1 || =4.0.2-1 | - |
 debian 12 | | =3.0.10-1 || =3.0.10-1~deb12u1 || =3.0.11-1 || =3.0.11-1~deb12u1 || =3.0.11-1~deb12u2 || =3.0.12-1 || =3.0.12-2 || =3.0.13-1~deb12u1 || =3.0.13-1~deb12u2 || =3.0.14-1~deb12u1 || =3.0.14-1~deb12u2 || =3.0.15-1~deb12u1 || =3.0.16-1~deb12u1 || =3.0.17-1~deb12u1 || =3.0.17-1~deb12u2 || =3.0.17-1~deb12u3 || =3.0.18-1~deb12u1 || =3.0.18-1~deb12u2 || =3.0.19-1~deb12u1 || =3.0.19-1~deb12u2 || =3.0.20-1~deb12u1 || =3.0.20-1~deb12u2 || =3.0.9-1 || =3.1.0-1 || =3.1.1-1 || =3.1.2-1 || =3.1.3-1 || =3.1.4-1 || =3.1.4-2 || =3.1.5-1 || =3.1.5-1.1 || =3.1.5-1.1+hurd.1 || =3.2.0-1 || =3.2.0-2 || =3.2.1-1 || =3.2.1-1.1~exp1 || =3.2.1-2 || =3.2.1-3 || =3.2.2-1 || =3.3.0-1 || =3.3.0~beta1-1 || =3.3.1-1 || =3.3.1-2 || =3.3.1-5 || =3.3.1-6 || =3.3.1-7 || =3.3.2-1 || =3.3.2-2 || =3.4.0-1 || =3.4.0-2 || =3.4.0~~beta1-1 || =3.4.0~~beta1-2 || =3.4.1-1 || =3.5.0-1 || =3.5.0-2 || =3.5.0-3 || =3.5.0~~alpha1-1 || =3.5.0~~beta1-1 || =3.5.1-1 || =3.5.2-1 || =3.5.3-1 || =3.5.4-1 || =3.5.4-1~deb13u1 || =3.5.4-1~deb13u2 || =3.5.5-1 || =3.5.5-1~deb13u1 || =3.5.5-1~deb13u2 || =3.5.6-1~deb13u1 || =3.5.6-1~deb13u2 || =3.5.7-1~deb13u1 || =3.5.7-1~deb13u2 || =3.6.0-1 || =3.6.0-2 || =3.6.0~~alpha1-1 || =3.6.0~~beta1-1 || =3.6.1-1 || =3.6.1-2 || =3.6.1-3 || =3.6.2-1 || =3.6.3-1 || =3.6.4-1 || =4.0.0-1 || =4.0.0~alpha1-1 || =4.0.0~beta1-1 || =4.0.1-1 || =4.0.2-1 | - |
 alpine v3.22 | | | 3.5.8-r0 |
 alpine v3.23 | | | 3.5.8-r0 |
 alpine v3.24 | | | 3.5.8-r0 |
 rpm rhel7 | | - | - |
 rpm rhel10 | | - | - |
 rpm rhel8 | | - | - |
 rpm rhel9 | | - | - |