CVE-2026-31790

Source
https://cve.org/CVERecord?id=CVE-2026-31790
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-31790.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-31790
Downstream
Related
Published
2026-04-07T22:00:56Z
Modified
2026-08-13T11:56:58Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N CVSS Calculator
Summary
Incorrect Failure Handling in RSA KEM RSASVE Encapsulation
Details

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 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.

Database specific
{
    "cna_assigner": "openssl",
    "cwe_ids": [
        "CWE-754"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31790.json"
}
References

Affected packages

Git / github.com/openssl/openssl

Affected ranges

Type
GIT
Repo
https://github.com/openssl/openssl
Events
Database specific
Show details
{
    "cpe": "cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*",
    "extracted_events": [
        {
            "introduced": "3.0.0"
        },
        {
            "fixed": "3.0.20"
        },
        {
            "introduced": "3.3.0"
        },
        {
            "fixed": "3.3.7"
        },
        {
            "introduced": "3.4.0"
        },
        {
            "fixed": "3.4.5"
        },
        {
            "introduced": "3.5.0"
        },
        {
            "fixed": "3.5.6"
        },
        {
            "introduced": "3.6.0"
        },
        {
            "fixed": "3.6.2"
        }
    ],
    "source": [
        "CPE_RANGE",
        "REFERENCES"
    ]
}

Affected versions

3.*
3.0-POST-CLANG-FORMAT-WEBKIT
3.0-PRE-CLANG-FORMAT-WEBKIT
3.3-POST-CLANG-FORMAT-WEBKIT
3.3-PRE-CLANG-FORMAT-WEBKIT
3.4-POST-CLANG-FORMAT-WEBKIT
3.4-PRE-CLANG-FORMAT-WEBKIT
3.5-POST-CLANG-FORMAT-WEBKIT
3.5-PRE-CLANG-FORMAT-WEBKIT
3.6-POST-CLANG-FORMAT-WEBKIT
3.6-PRE-CLANG-FORMAT-WEBKIT
openssl-3.*
openssl-3.0.0
openssl-3.0.1
openssl-3.0.10
openssl-3.0.11
openssl-3.0.12
openssl-3.0.13
openssl-3.0.14
openssl-3.0.15
openssl-3.0.16
openssl-3.0.17
openssl-3.0.18
openssl-3.0.19
openssl-3.0.2
openssl-3.0.3
openssl-3.0.4
openssl-3.0.5
openssl-3.0.6
openssl-3.0.7
openssl-3.0.8
openssl-3.0.9
openssl-3.3.0
openssl-3.3.1
openssl-3.3.2
openssl-3.3.3
openssl-3.3.4
openssl-3.3.5
openssl-3.3.6
openssl-3.4.0
openssl-3.4.1
openssl-3.4.2
openssl-3.4.3
openssl-3.4.4
openssl-3.5.0
openssl-3.5.1
openssl-3.5.2
openssl-3.5.3
openssl-3.5.4
openssl-3.5.5
openssl-3.6.0
openssl-3.6.1

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-31790.json"
vanir_signatures
[
    {
        "deprecated": false,
        "digest": {
            "function_hash": "189542578001022051844638676180069418852",
            "length": 815
        },
        "id": "CVE-2026-31790-018ce97e",
        "signature_type": "Function",
        "signature_version": "v1",
        "source": "https://github.com/openssl/openssl/commit/d5f8e71cd0a54e961d0c3b174348f8308486f790",
        "target": {
            "file": "providers/implementations/kem/rsa_kem.c",
            "function": "rsasve_generate"
        }
    },
    {
        "deprecated": false,
        "digest": {
            "line_hashes": [
                "278196644910020378797877326289562716464",
                "128347082521489651704136040653285145470",
                "52209736684511955497537762942657051729",
                "142213326511995995366934168172526029934",
                "3123676691629820969540701266136695106",
                "87606255750554511681517734874131183189",
                "145012507772233658079047458768781416199",
                "303537148589549380972349267515809788322",
                "189943355530216116721748686226778704218",
                "162922700271686436107402731224121909713",
                "338343483140302614182963625022660953531",
                "174900505482554411594506357522639767296",
                "289381205478540363242016959369444210059",
                "212692919502018645166428121117180913811"
            ],
            "threshold": 0.9
        },
        "id": "CVE-2026-31790-59f13f0b",
        "signature_type": "Line",
        "signature_version": "v1",
        "source": "https://github.com/openssl/openssl/commit/eed200f58cd8645ed77e46b7e9f764e284df379e",
        "target": {
            "file": "providers/implementations/kem/rsa_kem.c"
        }
    },
    {
        "deprecated": false,
        "digest": {
            "line_hashes": [
                "278196644910020378797877326289562716464",
                "128347082521489651704136040653285145470",
                "52209736684511955497537762942657051729",
                "142213326511995995366934168172526029934",
                "3123676691629820969540701266136695106",
                "87606255750554511681517734874131183189",
                "145012507772233658079047458768781416199",
                "303537148589549380972349267515809788322",
                "189943355530216116721748686226778704218",
                "162922700271686436107402731224121909713",
                "338343483140302614182963625022660953531",
                "174900505482554411594506357522639767296",
                "289381205478540363242016959369444210059",
                "212692919502018645166428121117180913811"
            ],
            "threshold": 0.9
        },
        "id": "CVE-2026-31790-8c11327b",
        "signature_type": "Line",
        "signature_version": "v1",
        "source": "https://github.com/openssl/openssl/commit/001e01db3e996e13ffc72386fe79d03a6683b5ac",
        "target": {
            "file": "providers/implementations/kem/rsa_kem.c"
        }
    },
    {
        "deprecated": false,
        "digest": {
            "line_hashes": [
                "278196644910020378797877326289562716464",
                "128347082521489651704136040653285145470",
                "52209736684511955497537762942657051729",
                "142213326511995995366934168172526029934",
                "3123676691629820969540701266136695106",
                "87606255750554511681517734874131183189",
                "145012507772233658079047458768781416199",
                "303537148589549380972349267515809788322",
                "189943355530216116721748686226778704218",
                "162922700271686436107402731224121909713",
                "338343483140302614182963625022660953531",
                "174900505482554411594506357522639767296",
                "289381205478540363242016959369444210059",
                "212692919502018645166428121117180913811"
            ],
            "threshold": 0.9
        },
        "id": "CVE-2026-31790-9104c8e6",
        "signature_type": "Line",
        "signature_version": "v1",
        "source": "https://github.com/openssl/openssl/commit/d5f8e71cd0a54e961d0c3b174348f8308486f790",
        "target": {
            "file": "providers/implementations/kem/rsa_kem.c"
        }
    },
    {
        "deprecated": false,
        "digest": {
            "function_hash": "189542578001022051844638676180069418852",
            "length": 815
        },
        "id": "CVE-2026-31790-b7501cc3",
        "signature_type": "Function",
        "signature_version": "v1",
        "source": "https://github.com/openssl/openssl/commit/eed200f58cd8645ed77e46b7e9f764e284df379e",
        "target": {
            "file": "providers/implementations/kem/rsa_kem.c",
            "function": "rsasve_generate"
        }
    },
    {
        "deprecated": false,
        "digest": {
            "function_hash": "189542578001022051844638676180069418852",
            "length": 815
        },
        "id": "CVE-2026-31790-ba26f35f",
        "signature_type": "Function",
        "signature_version": "v1",
        "source": "https://github.com/openssl/openssl/commit/b922e24e5b23ffb9cb9e14cadff23d91e9f7e406",
        "target": {
            "file": "providers/implementations/kem/rsa_kem.c",
            "function": "rsasve_generate"
        }
    },
    {
        "deprecated": false,
        "digest": {
            "function_hash": "189542578001022051844638676180069418852",
            "length": 815
        },
        "id": "CVE-2026-31790-bce81a11",
        "signature_type": "Function",
        "signature_version": "v1",
        "source": "https://github.com/openssl/openssl/commit/001e01db3e996e13ffc72386fe79d03a6683b5ac",
        "target": {
            "file": "providers/implementations/kem/rsa_kem.c",
            "function": "rsasve_generate"
        }
    },
    {
        "deprecated": false,
        "digest": {
            "line_hashes": [
                "278196644910020378797877326289562716464",
                "128347082521489651704136040653285145470",
                "52209736684511955497537762942657051729",
                "142213326511995995366934168172526029934",
                "3123676691629820969540701266136695106",
                "87606255750554511681517734874131183189",
                "145012507772233658079047458768781416199",
                "303537148589549380972349267515809788322",
                "189943355530216116721748686226778704218",
                "162922700271686436107402731224121909713",
                "338343483140302614182963625022660953531",
                "174900505482554411594506357522639767296",
                "289381205478540363242016959369444210059",
                "212692919502018645166428121117180913811"
            ],
            "threshold": 0.9
        },
        "id": "CVE-2026-31790-e2fd0c60",
        "signature_type": "Line",
        "signature_version": "v1",
        "source": "https://github.com/openssl/openssl/commit/b922e24e5b23ffb9cb9e14cadff23d91e9f7e406",
        "target": {
            "file": "providers/implementations/kem/rsa_kem.c"
        }
    }
]
vanir_signatures_modified
"2026-08-12T15:32:18Z"