{"document":{"category":"csaf_vex","csaf_version":"2.0","title":"CVE-2026-9076: Out-of-Bounds Read in CMS Password-Based Decryption","publisher":{"category":"vendor","name":"HarborGuard Database","namespace":"https://database.harborguard.co"},"tracking":{"id":"CVE-2026-9076","status":"final","version":"1","initial_release_date":"2026-06-09T16:03:16.306Z","current_release_date":"2026-06-10T07:47:51.139Z","revision_history":[{"date":"2026-06-09T16:03:16.306Z","number":"1","summary":"Initial machine-readable export from HarborGuard."}]},"distribution":{"tlp":{"label":"WHITE"},"text":"Public CVE data; freely redistributable."},"notes":[{"category":"description","text":"Issue summary: When CMS password-based decryption (RFC 3211 / PWRI key unwrap)\nprocesses attacker-supplied CMS data, an attacker-chosen stream-mode KEK\ncipher can trigger a heap out-of-bounds read in kek_unwrap_key().\n\nImpact summary: A heap buffer over-read may trigger a crash which leads to\nDenial of Service for an application if the input buffer ends at a memory\npage boundary and the following page is unmapped. There is no information\ndisclosure as the over-read bytes are not revealed to the attacker.\n\nThe key unwrapping function performs a check-byte test as specified in the\nRFC that reads 7 bytes from a heap allocation that is based on the wrapped\nkey length from the message. There is a minimum length check based on the\nblock length of the wrapping cipher. However the cipher is selected from\nan OID carried in the attacker's PWRI keyEncryptionAlgorithm with no\nrequirement that the cipher be a block cipher. When an attacker selects\na stream-mode cipher the guard will be ineffective and the allocated buffer\ncontaining the unwrapped key can be too small to fit the check-bytes\nspecified in the RFC and a buffer over-read can happen.\n\nApplications calling CMS_decrypt() or CMS_decrypt_set1_password()\n(equivalently openssl cms -decrypt -pwri_password ...) on untrusted CMS\ndata are vulnerable to this issue. No password knowledge is required: the\nover-read happens during the unwrap attempt before any authentication\nsucceeds.\n\nThe over-read is limited to a few bytes and is not written to output, so\nthere is no information disclosure. Triggering a crash requires the\nallocation to border unmapped memory, which is unlikely with the normal\nallocator.\n\nThe FIPS modules are not affected by this issue.","title":"CVE description"}],"references":[{"category":"self","summary":"CVE-2026-9076 on HarborGuard Database","url":"https://database.harborguard.co/cve/CVE-2026-9076"},{"category":"external","summary":"CVE Record","url":"https://www.cve.org/CVERecord?id=CVE-2026-9076"},{"category":"external","summary":"OpenSSL Advisory","url":"https://openssl-library.org/news/secadv/20260609.txt"},{"category":"external","summary":"4.0.1 git commit","url":"https://github.com/openssl/openssl/commit/3d8d5bc1056b2f62da9fede23fedbf47e85187b0"},{"category":"external","summary":"3.6.3 git commit","url":"https://github.com/openssl/openssl/commit/77bf00ab13f6ff5e516535432f0328ed70ec0c26"},{"category":"external","summary":"3.5.7 git commit","url":"https://github.com/openssl/openssl/commit/715349a1d7c6db970e6815dafb90915f07307f98"},{"category":"external","summary":"3.4.6 git commit","url":"https://github.com/openssl/openssl/commit/05b066366842f930fadd9a6e94df98030af431bb"},{"category":"external","summary":"3.0.21 git commit","url":"https://github.com/openssl/openssl/commit/eecbe330977e8d023aae1ca2d9bdbe983ef3fdc6"}]},"product_tree":{"branches":[{"category":"vendor","name":"OpenSSL","branches":[{"category":"product_name","name":"OpenSSL","branches":[{"category":"product_version_range","name":">=4.0.0 <4.0.1","product":{"name":"OpenSSL OpenSSL >=4.0.0 <4.0.1","product_id":"CSAFPID-1","product_identification_helper":{"cpe":"cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*"}}},{"category":"product_version_range","name":">=3.6.0 <3.6.3","product":{"name":"OpenSSL OpenSSL >=3.6.0 <3.6.3","product_id":"CSAFPID-2","product_identification_helper":{"cpe":"cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*"}}},{"category":"product_version_range","name":">=3.5.0 <3.5.7","product":{"name":"OpenSSL OpenSSL >=3.5.0 <3.5.7","product_id":"CSAFPID-3","product_identification_helper":{"cpe":"cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*"}}},{"category":"product_version_range","name":">=3.4.0 <3.4.6","product":{"name":"OpenSSL OpenSSL >=3.4.0 <3.4.6","product_id":"CSAFPID-4","product_identification_helper":{"cpe":"cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*"}}},{"category":"product_version_range","name":">=3.0.0 <3.0.21","product":{"name":"OpenSSL OpenSSL >=3.0.0 <3.0.21","product_id":"CSAFPID-5","product_identification_helper":{"cpe":"cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*"}}},{"category":"product_version_range","name":">=1.1.1 <1.1.1zh","product":{"name":"OpenSSL OpenSSL >=1.1.1 <1.1.1zh","product_id":"CSAFPID-6","product_identification_helper":{"cpe":"cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*"}}},{"category":"product_version_range","name":">=1.0.2 <1.0.2zq","product":{"name":"OpenSSL OpenSSL >=1.0.2 <1.0.2zq","product_id":"CSAFPID-7","product_identification_helper":{"cpe":"cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*"}}}]}]}]},"vulnerabilities":[{"cve":"CVE-2026-9076","title":"Out-of-Bounds Read in CMS Password-Based Decryption","notes":[{"category":"description","text":"Issue summary: When CMS password-based decryption (RFC 3211 / PWRI key unwrap)\nprocesses attacker-supplied CMS data, an attacker-chosen stream-mode KEK\ncipher can trigger a heap out-of-bounds read in kek_unwrap_key().\n\nImpact summary: A heap buffer over-read may trigger a crash which leads to\nDenial of Service for an application if the input buffer ends at a memory\npage boundary and the following page is unmapped. There is no information\ndisclosure as the over-read bytes are not revealed to the attacker.\n\nThe key unwrapping function performs a check-byte test as specified in the\nRFC that reads 7 bytes from a heap allocation that is based on the wrapped\nkey length from the message. There is a minimum length check based on the\nblock length of the wrapping cipher. However the cipher is selected from\nan OID carried in the attacker's PWRI keyEncryptionAlgorithm with no\nrequirement that the cipher be a block cipher. When an attacker selects\na stream-mode cipher the guard will be ineffective and the allocated buffer\ncontaining the unwrapped key can be too small to fit the check-bytes\nspecified in the RFC and a buffer over-read can happen.\n\nApplications calling CMS_decrypt() or CMS_decrypt_set1_password()\n(equivalently openssl cms -decrypt -pwri_password ...) on untrusted CMS\ndata are vulnerable to this issue. No password knowledge is required: the\nover-read happens during the unwrap attempt before any authentication\nsucceeds.\n\nThe over-read is limited to a few bytes and is not written to output, so\nthere is no information disclosure. Triggering a crash requires the\nallocation to border unmapped memory, which is unlikely with the normal\nallocator.\n\nThe FIPS modules are not affected by this issue.","title":"CVE description"}],"product_status":{"known_affected":["CSAFPID-1","CSAFPID-2","CSAFPID-3","CSAFPID-4","CSAFPID-5","CSAFPID-6","CSAFPID-7"]},"scores":[{"cvss_v3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH"},"products":["CSAFPID-1","CSAFPID-2","CSAFPID-3","CSAFPID-4","CSAFPID-5","CSAFPID-6","CSAFPID-7"]}],"remediations":[{"category":"vendor_fix","details":"Update to a fixed version: 1.0.2zq, 1.1.1zh, 3.0.21, 3.4.6, 3.5.7, 3.6.3, 4.0.1.","product_ids":["CSAFPID-1","CSAFPID-2","CSAFPID-3","CSAFPID-4","CSAFPID-5","CSAFPID-6","CSAFPID-7"],"url":"https://github.com/openssl/openssl/commit/3d8d5bc1056b2f62da9fede23fedbf47e85187b0"}]}]}