Cyber Resilience

CVE-2026-31790

Openssl 3.0.0 – 3.0.20

Published
07 April 2026
Modified
24 July 2026
Patch / advisory
CVSS Score v3.1 7.5
Click a component to see what it means
Raw vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
EPSS Score 0.010 61th percentile
Risk Priority 60 floored blend · peak EPSS

Summary

CVE-2026-31790 is a high-severity Improper Check for Unusual or Exceptional Conditions (CWE-754) vulnerability in Openssl Openssl. Its CVSS base score is 7.5 (High).

Operationally, exploitation aligns with the MITRE ATT&CK technique Service Stop (T1489); ranked in the top 39% of CVEs by exploit likelihood; 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 SI-10 (Information Input Validation) — 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-31790 is a vulnerability in the RSASVE key encapsulation mechanism implemented via EVP_PKEY_encapsulate() in OpenSSL. It affects applications that use RSA/RSASVE without validating attacker-supplied RSA public keys beforehand. Specifically, when RSA_public_encrypt() fails on an invalid key, the code incorrectly treats a non-zero return value (which could be -1 masked as success) as valid, causing the uninitialized contents of the caller-provided ciphertext buffer to be sent to the peer instead of a proper KEM ciphertext. This issue impacts the FIPS modules in OpenSSL versions 3.0, 3.1, 3.3, 3.4, 3.5, and 3.6, with a CVSS v3.1 score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N) and is classified under CWE-754 (Improper Check for Unusual or Exceptional Conditions).

A network-adjacent or remote attacker can exploit this by providing an invalid RSA public key during key encapsulation. No authentication or user interaction is required, allowing unauthenticated attackers to trigger the flaw in vulnerable applications. Successful exploitation results in the disclosure of sensitive data potentially lingering in the uninitialized buffer from prior process executions, leading to information leakage without impacting integrity or availability.

OpenSSL advisories recommend validating public keys prior to encapsulation by calling EVP_PKEY_public_check() or EVP_PKEY_public_check_quick() as a workaround. Patches are available in multiple OpenSSL GitHub commits, including 001e01db3e996e13ffc72386fe79d03a6683b5ac, abd8b2eec7e3f3fda60ecfb68498b246b52af482, b922e24e5b23ffb9cb9e14cadff23d91e9f7e406, d5f8e71cd0a54e961d0c3b174348f8308486f790, and eed200f58cd8645ed77e46b7e9f764e284df379e, which fix the return value handling in RSA_public_encrypt().

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

Issue summary: Applications using RSASVE key encapsulation to establish a secret encryption key can send contents of an uninitialized memory buffer to a malicious peer. Impact summary: The uninitialized buffer might contain sensitive data from the previous execution of the…

more

application process which leads to sensitive data leakage to an attacker. RSA_public_encrypt() returns the number of bytes written on success and -1 on error. The affected code tests only whether the return value is non-zero. As a result, if RSA encryption fails, encapsulation can still return success to the caller, set the output lengths, and leave the caller to use the contents of the ciphertext buffer as if a valid KEM ciphertext had been produced. If applications use EVP_PKEY_encapsulate() with RSA/RSASVE on an attacker-supplied invalid RSA public key without first validating that key, then this may cause stale or uninitialized contents of the caller-provided ciphertext buffer to be disclosed to the attacker in place of the KEM ciphertext. As a workaround calling EVP_PKEY_public_check() or EVP_PKEY_public_check_quick() before EVP_PKEY_encapsulate() will mitigate the issue. The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.1 and 3.0 are affected by this issue.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1489 Service Stop Impact
Adversaries may stop or disable services on a system to render those services unavailable to legitimate users.
T1499 Endpoint Denial of Service Impact
Adversaries may perform Endpoint Denial of Service (DoS) attacks to degrade or block the availability of services to users.
T1499.004 Application or System Exploitation Impact
Adversaries may exploit software vulnerabilities that can cause an application or system to crash and deny availability to users.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2025-69420Same product: Openssl Openssl
CVE-2026-22795Same product: Openssl Openssl
CVE-2026-22796Same product: Openssl Openssl
CVE-2023-5678Same product: Openssl Openssl
CVE-2026-28388Same product: Openssl Openssl
CVE-2025-15468Same product: Openssl Openssl
CVE-2023-0217Same product: Openssl Openssl
CVE-2026-28390Same product: Openssl Openssl
CVE-2026-28389Same product: Openssl Openssl
CVE-2026-42765Same product: Openssl Openssl

Affected Assets

openssl
openssl
3.0.0 — 3.0.20 · 3.3.0 — 3.3.7 · 3.4.0 — 3.4.5

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

Detect
Catch it (NIST detect / respond)

Harden
Shrink the surface (DISA STIG)
  • 7 hardening rules · 2 OS baselines
Validate
Prove the fix (OWASP ASVS)

Mitigating Controls (NIST 800-53 r5) AI

Developer testing and evaluation explicitly exercises unusual conditions to find missing or incorrect checks.

Input validation directly requires checking for unexpected or malformed conditions before they propagate.

Security engineering principles include structured handling of edge cases and exceptions during design.

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.

PR.PS-06 mostly match
prevents

Secure development practices directly require proper checks and handling for exceptional conditions throughout the SDLC.

DE.CM-09 partial match
prevents

Runtime monitoring of software and environments can detect adverse events triggered by unhandled exceptional conditions.

PR.PS-04 partial match
prevents

Generating logs of exceptions and errors enables detection of improper handling of unusual conditions.

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.

finds

Security testing in development and acceptance verifies handling of error and exceptional conditions.

A.8.15 Logging partial match
finds

Logging can record unhandled exceptions but does not prevent the weakness itself.

finds

Monitoring may detect symptoms of unhandled conditions but does not eliminate the root weakness.

prevents

Secure development life cycle mandates exception handling and input validation that directly prevent missing checks for unusual conditions.

prevents

Application security requirements explicitly call for handling of exceptional conditions and error paths.

prevents

Secure system architecture and engineering principles require robust error and exception handling mechanisms.

Hardening callouts derived

Configuration rules from DISA STIG baselines that bear on weaknesses of the type cited by this CVE. Each rule is shown with the relationship its mapping actually records, against the CWE it was authored against. Derived via CVE→CWE over `controls_xwalks` (authoritative rows only; rows rated `none` are excluded).

Oracle Linux 8 (2 rules)
  • V-248574 YUM must be configured to prevent the installation of patches, service packs, device drivers, or OL 8 system components that have not been digitally signed using a certificate that is recognized and approved by the organization. prevents CWE-754
  • V-248575 OL 8 must prevent the installation of software, patches, service packs, device drivers, or operating system components of local packages without verification they have been digitally signed using a certificate that is issued by a Certificate Authority (CA) that is recognized and approved by the organization. prevents CWE-754
Oracle Linux 9 (1 rule)
  • V-271452 OL 9 must use a Linux Security Module configured to enforce limits on system services. prevents CWE-754

References