Raw vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HSummary
CVE-2026-31789 is a critical-severity Out-of-bounds Write (CWE-787) vulnerability in Openssl Openssl. Its CVSS base score is 9.8 (Critical).
Operationally, exploitation aligns with the MITRE ATT&CK technique Exploitation for Privilege Escalation (T1068); ranked at the 16th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
The strongest mitigations our analysis identified map to SA-11 (Developer Testing and Evaluation) and SA-15 (Development Process, Standards, and Tools) — see the control section below for these in your framework.
Deeper analysis AI-assisted summary
Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.
CVE-2026-31789 is a heap buffer overflow vulnerability in OpenSSL, triggered when converting an excessively large OCTET STRING value from an X.509 certificate extension—such as the Subject Key Identifier (SKID) or Authority Key Identifier (AKID)—to a hexadecimal string on 32-bit platforms. The buffer size for the hexadecimal output is calculated by multiplying the input length by 3, which can overflow on 32-bit systems, resulting in allocation of an undersized buffer and a subsequent heap buffer overflow. Applications and services that print or log contents of untrusted X.509 certificates are vulnerable, while OpenSSL FIPS modules in versions 3.6, 3.5, 3.4, 3.3, and 3.0 are not affected as the issue lies outside the FIPS module boundary.
An attacker can exploit this vulnerability by supplying a crafted X.509 certificate containing an excessively large OCTET STRING value (over 1 Gigabyte) in the affected extensions. Any remote or local user who can provide such a certificate to a vulnerable application that processes, prints, or logs it—without prior validation of certificate size—could trigger the issue. Successful exploitation may cause a crash or potentially lead to attacker-controlled code execution or other undefined behavior, classified under CWE-787 (Out-of-bounds Write).
Mitigation requires applying patches from the OpenSSL repository, available via the following GitHub commits: https://github.com/openssl/openssl/commit/364f095b80601db632b0def6a33316967f863bde, https://github.com/openssl/openssl/commit/7a9087efd769f362ad9c0e30c7baaa6bbfa65ecf, https://github.com/openssl/openssl/commit/945b935ac66cc7f1a41f1b849c7c25adb5351f49, https://github.com/openssl/openssl/commit/a24216018e1ede8ff01a4ff5afff7dfbd443e2f9, and https://github.com/openssl/openssl/commit/a91e537d16d74050dbde50bb0dfb1fe9930f0521.
Although assigned a CVSS v3.1 score of 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H), the vulnerability received low severity due to its limitation to 32-bit platforms and the impractical requirement for certificates exceeding 1 Gigabyte in size, making printing or logging such certificates unlikely.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2026-19968
Vulnerability Data
Issue summary: Converting an excessively large OCTET STRING value to a hexadecimal string leads to a heap buffer overflow on 32 bit platforms. Impact summary: A heap buffer overflow may lead to a crash or possibly an attacker controlled code…
more
execution or other undefined behavior. If an attacker can supply a crafted X.509 certificate with an excessively large OCTET STRING value in extensions such as the Subject Key Identifier (SKID) or Authority Key Identifier (AKID) which are being converted to hex, the size of the buffer needed for the result is calculated as multiplication of the input length by 3. On 32 bit platforms, this multiplication may overflow resulting in the allocation of a smaller buffer and a heap buffer overflow. Applications and services that print or log contents of untrusted X.509 certificates are vulnerable to this issue. As the certificates would have to have sizes of over 1 Gigabyte, printing or logging such certificates is a fairly unlikely operation and only 32 bit platforms are affected, this issue was assigned Low severity. The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.
- CWE(s)
Related Threats
MITRE ATT&CK Enterprise Techniques
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST 800-53 r5) AI
Developer testing and evaluation (including fuzzing and bounds checks) finds out-of-bounds write flaws before deployment.
Requiring documented secure-development standards and tools can mandate bounds-checked coding practices that avoid the weakness.
Input validation can structurally reject or sanitize data that would otherwise trigger an out-of-bounds write.
Memory-protection mechanisms limit the exploitability and blast radius of a successful out-of-bounds write.
Mitigating Controls (NIST CSF 2.0) AI
Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.
Secure-development practices (static analysis, bounds checking, code review) are the primary means of preventing out-of-bounds writes.
Vulnerability scanning and recording can discover out-of-bounds write flaws so they can be remediated.
Patching or replacing vulnerable software directly eliminates known instances of this coding weakness.
Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI
Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.
Security testing in development and acceptance can detect and prevent out-of-bounds write defects.
Secure development life cycle mandates practices that prevent out-of-bounds writes.
Application security requirements can specify bounds-checking and safe memory handling.
Secure architecture and engineering principles reduce the likelihood of buffer overflows.
Secure coding directly addresses out-of-bounds writes through language choice and coding standards.
Change management can enforce review gates that catch unsafe memory operations before deployment.