{"id":"CVE-2026-9076","summary":"Out-of-Bounds Read in CMS Password-Based Decryption","details":"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.","modified":"2026-07-15T16:00:29.988580Z","published":"2026-06-09T16:03:16.306Z","related":["ALSA-2026:25237","ALSA-2026:25239","CGA-2hx8-pjgm-f5vg","SUSE-SU-2026:22100-1","SUSE-SU-2026:22132-1","SUSE-SU-2026:22251-1","SUSE-SU-2026:22315-1","SUSE-SU-2026:2392-1","SUSE-SU-2026:2393-1","SUSE-SU-2026:2396-1","SUSE-SU-2026:2397-1","SUSE-SU-2026:2399-1","SUSE-SU-2026:2403-1","SUSE-SU-2026:2404-1","SUSE-SU-2026:2405-1","SUSE-SU-2026:2598-1","SUSE-SU-2026:2614-1","SUSE-SU-2026:2648-1","openSUSE-SU-2026:11023-1","openSUSE-SU-2026:21005-1"],"database_specific":{"cna_assigner":"openssl","cwe_ids":["CWE-125"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/9xxx/CVE-2026-9076.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/9xxx/CVE-2026-9076.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-9076"},{"type":"ADVISORY","url":"https://openssl-library.org/news/secadv/20260609.txt"},{"type":"FIX","url":"https://github.com/openssl/openssl/commit/05b066366842f930fadd9a6e94df98030af431bb"},{"type":"FIX","url":"https://github.com/openssl/openssl/commit/3d8d5bc1056b2f62da9fede23fedbf47e85187b0"},{"type":"FIX","url":"https://github.com/openssl/openssl/commit/715349a1d7c6db970e6815dafb90915f07307f98"},{"type":"FIX","url":"https://github.com/openssl/openssl/commit/77bf00ab13f6ff5e516535432f0328ed70ec0c26"},{"type":"FIX","url":"https://github.com/openssl/openssl/commit/eecbe330977e8d023aae1ca2d9bdbe983ef3fdc6"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/openssl/openssl","events":[{"introduced":"e818b74be2170fbe957a07b0da4401c2b694b3b8"},{"fixed":"e818b74be2170fbe957a07b0da4401c2b694b3b8"},{"introduced":"e04bd3433fd84e1861bf258ea37928d9845e6a86"},{"fixed":"e04bd3433fd84e1861bf258ea37928d9845e6a86"},{"introduced":"89cd17a031e022211684eb7eb41190cf1910f9fa"},{"fixed":"51ea949dc1436e865935b47874b21a3bb31a102e"},{"introduced":"98acb6b02839c609ef5b837794e08d906d965335"},{"fixed":"c5ea1cc227fd60afae8ac4b9438690bbe4888f79"},{"introduced":"636dfadc70ce26f2473870570bfd9ec352806b1d"},{"fixed":"8cf17aaeb4599f8af87fefd810b5b5fee90fe69e"},{"introduced":"7b371d80d959ec9ab4139d09d78e83c090de9779"},{"fixed":"aae016bfd52fcad2bc9657c2c782cfdf73b1ed5f"},{"introduced":"11b7b6ea3b65a584e1d31408ed1bdb139465cffd"},{"fixed":"05b066366842f930fadd9a6e94df98030af431bb"},{"fixed":"3d8d5bc1056b2f62da9fede23fedbf47e85187b0"},{"fixed":"715349a1d7c6db970e6815dafb90915f07307f98"},{"fixed":"77bf00ab13f6ff5e516535432f0328ed70ec0c26"},{"fixed":"eecbe330977e8d023aae1ca2d9bdbe983ef3fdc6"}],"database_specific":{"cpe":["cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*","cpe:2.3:a:openssl:openssl:4.0.0:-:*:*:*:*:*:*"],"extracted_events":[{"introduced":"1.0.2"},{"fixed":"1.0.2zq"},{"introduced":"1.1.1"},{"fixed":"1.1.1zh"},{"introduced":"3.0.0"},{"fixed":"3.0.21"},{"introduced":"3.4.0"},{"fixed":"3.4.6"},{"introduced":"3.5.0"},{"fixed":"3.5.7"},{"introduced":"3.6.0"},{"fixed":"3.6.3"},{"introduced":"4.0.0-NA"},{"last_affected":"4.0.0-NA"}],"source":["CPE_RANGE","CPE_STRING","REFERENCES"]}}],"versions":["4.0.0-NA","openssl-4.0.0","openssl-3.0.20","openssl-3.4.5","openssl-3.5.6","openssl-3.6.2","openssl-3.0.19","openssl-3.4.4","openssl-3.5.5","openssl-3.6.1","3.4-POST-CLANG-FORMAT-WEBKIT","3.0-POST-CLANG-FORMAT-WEBKIT","3.4-PRE-CLANG-FORMAT-WEBKIT","3.5-POST-CLANG-FORMAT-WEBKIT","3.0-PRE-CLANG-FORMAT-WEBKIT","3.5-PRE-CLANG-FORMAT-WEBKIT","3.6-POST-CLANG-FORMAT-WEBKIT","3.6-PRE-CLANG-FORMAT-WEBKIT","openssl-3.6.0","openssl-3.0.18","openssl-3.4.3","openssl-3.5.4","openssl-3.5.3","openssl-3.5.2","openssl-3.0.17","openssl-3.4.2","openssl-3.5.1","openssl-3.5.0","openssl-3.0.16","openssl-3.4.1","openssl-3.4.0","openssl-3.0.15","openssl-3.0.14","openssl-3.0.13","openssl-3.0.12","openssl-3.0.11","openssl-3.0.10","openssl-3.0.9","openssl-3.0.8","openssl-3.0.7","openssl-3.0.6","openssl-3.0.5","openssl-3.0.4","openssl-3.0.3","openssl-3.0.2","openssl-3.0.1","openssl-3.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-9076.json","vanir_signatures_modified":"2026-07-15T16:00:29Z","vanir_signatures":[{"digest":{"line_hashes":["227915382172268432891510680834288086618","186705422505852322760354638204271816428","187066792577790534148190407859100956924","169429462779172790857674959670677005162","67391319490189241857103992959510573351","217758957268315522076646552116152090378","31130819410385567320343273067241531897","244104843846917897921595995203054158519","255586470514418239073904203556570502151","316909758438434070933019317604952931093","227036639418218030553513135503985645880","293332754674260650821688238806907401743"],"threshold":0.9},"id":"CVE-2026-9076-01fbcab1","signature_type":"Line","signature_version":"v1","source":"https://github.com/openssl/openssl/commit/715349a1d7c6db970e6815dafb90915f07307f98","target":{"file":"crypto/cms/cms_pwri.c"},"deprecated":false},{"signature_version":"v1","source":"https://github.com/openssl/openssl/commit/3d8d5bc1056b2f62da9fede23fedbf47e85187b0","target":{"file":"crypto/cms/cms_pwri.c"},"deprecated":false,"digest":{"line_hashes":["103141276438757284678382376246984173993","4516702749541539328452248760976330944","236380163321055266138092303061100547862","67227532809420851375710601683624968986"],"threshold":0.9},"id":"CVE-2026-9076-1157e204","signature_type":"Line"},{"source":"https://github.com/openssl/openssl/commit/05b066366842f930fadd9a6e94df98030af431bb","target":{"function":"kek_unwrap_key","file":"crypto/cms/cms_pwri.c"},"deprecated":false,"digest":{"function_hash":"268614998781633656379356010285745601249","length":995},"id":"CVE-2026-9076-2d751f06","signature_type":"Function","signature_version":"v1"},{"id":"CVE-2026-9076-3bc9aadd","signature_type":"Line","signature_version":"v1","source":"https://github.com/openssl/openssl/commit/05b066366842f930fadd9a6e94df98030af431bb","target":{"file":"crypto/cms/cms_pwri.c"},"deprecated":false,"digest":{"threshold":0.9,"line_hashes":["227915382172268432891510680834288086618","186705422505852322760354638204271816428","187066792577790534148190407859100956924","169429462779172790857674959670677005162","67391319490189241857103992959510573351","217758957268315522076646552116152090378","31130819410385567320343273067241531897","244104843846917897921595995203054158519","255586470514418239073904203556570502151","316909758438434070933019317604952931093","227036639418218030553513135503985645880","293332754674260650821688238806907401743"]}},{"source":"https://github.com/openssl/openssl/commit/77bf00ab13f6ff5e516535432f0328ed70ec0c26","target":{"function":"kek_unwrap_key","file":"crypto/cms/cms_pwri.c"},"deprecated":false,"digest":{"function_hash":"22227395071070385813536860035149783914","length":1048},"id":"CVE-2026-9076-413fbfe8","signature_type":"Function","signature_version":"v1"},{"deprecated":false,"digest":{"threshold":0.9,"line_hashes":["227915382172268432891510680834288086618","186705422505852322760354638204271816428","187066792577790534148190407859100956924","95205020732602437978794113538070921246","302749459819436303573414214711383738500","106372169618065324582769687411773396323","255586470514418239073904203556570502151","316909758438434070933019317604952931093","227036639418218030553513135503985645880","19797040175335443903820697047342526981"]},"id":"CVE-2026-9076-4a44611f","signature_type":"Line","signature_version":"v1","source":"https://github.com/openssl/openssl/commit/eecbe330977e8d023aae1ca2d9bdbe983ef3fdc6","target":{"file":"crypto/cms/cms_pwri.c"}},{"signature_version":"v1","source":"https://github.com/openssl/openssl/commit/77bf00ab13f6ff5e516535432f0328ed70ec0c26","target":{"file":"crypto/cms/cms_pwri.c"},"deprecated":false,"digest":{"line_hashes":["103141276438757284678382376246984173993","4516702749541539328452248760976330944","236380163321055266138092303061100547862","67227532809420851375710601683624968986"],"threshold":0.9},"id":"CVE-2026-9076-4b3d3fcb","signature_type":"Line"},{"source":"https://github.com/openssl/openssl/commit/eecbe330977e8d023aae1ca2d9bdbe983ef3fdc6","target":{"function":"kek_unwrap_key","file":"crypto/cms/cms_pwri.c"},"deprecated":false,"digest":{"function_hash":"297142130679699775388758324511930184761","length":1022},"id":"CVE-2026-9076-7bb516fc","signature_type":"Function","signature_version":"v1"},{"signature_version":"v1","source":"https://github.com/openssl/openssl/commit/715349a1d7c6db970e6815dafb90915f07307f98","target":{"file":"crypto/cms/cms_pwri.c","function":"kek_unwrap_key"},"deprecated":false,"digest":{"function_hash":"268614998781633656379356010285745601249","length":995},"id":"CVE-2026-9076-7ddd4e67","signature_type":"Function"},{"signature_type":"Line","signature_version":"v1","source":"https://github.com/openssl/openssl/commit/e04bd3433fd84e1861bf258ea37928d9845e6a86","target":{"file":"include/openssl/opensslv.h"},"deprecated":false,"digest":{"line_hashes":["28170854778703993674264004058177114599","73132526844288570625317440636111911761","177405411499435185068645597737938634778","224809958623850711330610094965797758930","295554444428855106393106961197201359586"],"threshold":0.9},"id":"CVE-2026-9076-c377fa22"},{"target":{"file":"crypto/opensslv.h"},"deprecated":false,"digest":{"line_hashes":["251633914150035957322733061977107206211","338514574181828579838011565939158652696","76638288692106140328510055542557597351","142922657400765574308962710386922248045","71649992455794854055653842592139575350","65527166711110472566013424527579064967","253196866009476977787139000804413898733","172177136897997206866313011107384691461"],"threshold":0.9},"id":"CVE-2026-9076-e051451f","signature_type":"Line","signature_version":"v1","source":"https://github.com/openssl/openssl/commit/e818b74be2170fbe957a07b0da4401c2b694b3b8"},{"signature_version":"v1","source":"https://github.com/openssl/openssl/commit/3d8d5bc1056b2f62da9fede23fedbf47e85187b0","target":{"file":"crypto/cms/cms_pwri.c","function":"kek_unwrap_key"},"deprecated":false,"digest":{"function_hash":"22227395071070385813536860035149783914","length":1048},"id":"CVE-2026-9076-eae24e48","signature_type":"Function"}]}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}