CVE-2026-54876

Source
https://cve.org/CVERecord?id=CVE-2026-54876
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54876.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-54876
Downstream
Published
2026-08-05T13:59:36.466Z
Modified
2026-08-07T08:11:15.883989Z
Severity
  • 7.5 (High) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
Summary
Client-Side Memory Leak in OCSP Response Checking
Details

Issue summary: A malicious TLS server can cause a memory leak in a TLS client that has enabled OCSP response checking by sending an OCSP response that contains no single response entries.

Impact summary: An attacker can leak an attacker-tunable amount of memory per TLS handshake in a victim client application. A long-running client that repeatedly connects to a malicious server can have its memory exhausted, resulting in a Denial of Service.

CWE: CWE-401: Missing Release of Memory after Effective Lifetime

Description: The affected function is called during X.509 certificate chain verification when OCSP response checking is enabled with the X509VFLAGOCSPRESPCHECK or X509VFLAGOCSPRESPCHECK_ALL verification flags, for example when a TLS client verifies an OCSP response stapled into the TLS handshake by the server.

When the received BasicOCSPResponse contains an empty SEQUENCE OF SingleResponse, which is permitted on the wire and accepted by the OpenSSL decoder, the OCSPBASICRESP structure allocated by OCSPresponseget1basic() was not freed because an early return bypassed the cleanup code at the end of the function.

The amount of memory leaked per handshake can be amplified by the attacker by padding the certs field of the BasicOCSPResponse with bogus certificates, which are parsed and stored in the leaked structure before the empty response check triggers the early return. A long-running TLS client that repeatedly connects to a malicious server can have its memory exhausted over time.

OCSP response checking is not enabled by default. Only client applications that explicitly enable the OCSP response check verification flags are affected.

FIPS impact: no

The FIPS modules in 4.0 and 3.6 are not affected by this issue as the affected code is outside the OpenSSL FIPS module boundary.

Database specific
{
    "cwe_ids": [
        "CWE-401"
    ],
    "cna_assigner": "openssl",
    "unresolved_ranges": [
        {
            "source": "AFFECTED_FIELD",
            "extracted_events": [
                {
                    "introduced": "4.0.0"
                },
                {
                    "fixed": "4.0.2"
                },
                {
                    "introduced": "3.6.0"
                },
                {
                    "fixed": "3.6.4"
                }
            ]
        }
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/54xxx/CVE-2026-54876.json"
}
References

Affected packages

Git / github.com/openssl/openssl

Affected ranges

Type
GIT
Repo
https://github.com/openssl/openssl
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Fixed
Fixed
Database specific
{
    "source": "REFERENCES"
}

Affected versions

3.*
3.6-POST-CLANG-FORMAT-WEBKIT
3.6-PRE-CLANG-FORMAT-WEBKIT
4.*
4.0-POST-CLANG-FORMAT-WEBKIT
4.0-PRE-CLANG-FORMAT-WEBKIT
Other
BEFORE_engine
OpenSSL_0_9_1c
OpenSSL_0_9_2b
OpenSSL_0_9_3
OpenSSL_0_9_3a
OpenSSL_0_9_3beta2
OpenSSL_0_9_4
OpenSSL_0_9_5a
OpenSSL_0_9_5a-beta1
OpenSSL_0_9_5a-beta2
OpenSSL_0_9_5beta1
OpenSSL_0_9_5beta2
OpenSSL_0_9_6-beta3
OpenSSL_1_1_0-pre1
OpenSSL_1_1_0-pre2
OpenSSL_1_1_0-pre3
OpenSSL_1_1_0-pre4
OpenSSL_1_1_0-pre5
OpenSSL_1_1_0-pre6
OpenSSL_1_1_1
OpenSSL_1_1_1-pre1
OpenSSL_1_1_1-pre2
OpenSSL_1_1_1-pre3
OpenSSL_1_1_1-pre4
OpenSSL_1_1_1-pre5
OpenSSL_1_1_1-pre6
OpenSSL_1_1_1-pre7
OpenSSL_1_1_1-pre8
OpenSSL_1_1_1-pre9
master-post-auto-reformat
master-post-reformat
master-pre-auto-reformat
master-pre-reformat
openssl-3.*
openssl-3.0.0-alpha1
openssl-3.0.0-alpha10
openssl-3.0.0-alpha11
openssl-3.0.0-alpha12
openssl-3.0.0-alpha13
openssl-3.0.0-alpha14
openssl-3.0.0-alpha15
openssl-3.0.0-alpha16
openssl-3.0.0-alpha17
openssl-3.0.0-alpha2
openssl-3.0.0-alpha3
openssl-3.0.0-alpha4
openssl-3.0.0-alpha5
openssl-3.0.0-alpha6
openssl-3.0.0-alpha7
openssl-3.0.0-alpha8
openssl-3.0.0-alpha9
openssl-3.0.0-beta1
openssl-3.0.0-beta2
openssl-3.2.0-alpha1
openssl-3.2.0-alpha2
openssl-3.4.0-alpha1
openssl-3.6.0
openssl-3.6.0-alpha1
openssl-3.6.0-beta1
openssl-3.6.1
openssl-3.6.2
openssl-3.6.3
openssl-4.*
openssl-4.0.0
openssl-4.0.0-alpha1
openssl-4.0.0-beta1
openssl-4.0.1

Database specific

vanir_signatures
[
    {
        "digest": {
            "length": 1750.0,
            "function_hash": "160641891841475924494476073364912984925"
        },
        "deprecated": false,
        "source": "https://github.com/openssl/openssl/commit/155b5fe0f93365e6df1c56ee3606b121080c6c12",
        "signature_type": "Function",
        "target": {
            "file": "crypto/x509/x509_vfy.c",
            "function": "check_cert_ocsp_resp"
        },
        "signature_version": "v1",
        "id": "CVE-2026-54876-25e2b498"
    },
    {
        "digest": {
            "length": 1750.0,
            "function_hash": "160641891841475924494476073364912984925"
        },
        "deprecated": false,
        "source": "https://github.com/openssl/openssl/commit/d8c51048ac037a21bae0f41cad7a3920dc7f3638",
        "signature_type": "Function",
        "target": {
            "file": "crypto/x509/x509_vfy.c",
            "function": "check_cert_ocsp_resp"
        },
        "signature_version": "v1",
        "id": "CVE-2026-54876-c3ef82e6"
    },
    {
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "303866564082954206206029976445149480800",
                "41104825234589676860157793468198067856",
                "97759028652397814767519481234710209452",
                "297295048248541998539773943654436570891",
                "223629964282213138350637630234383941186",
                "243959413222545377980179615990557206967"
            ]
        },
        "deprecated": false,
        "source": "https://github.com/openssl/openssl/commit/155b5fe0f93365e6df1c56ee3606b121080c6c12",
        "signature_type": "Line",
        "target": {
            "file": "crypto/x509/x509_vfy.c"
        },
        "signature_version": "v1",
        "id": "CVE-2026-54876-c9e31098"
    },
    {
        "digest": {
            "threshold": 0.9,
            "line_hashes": [
                "303866564082954206206029976445149480800",
                "41104825234589676860157793468198067856",
                "97759028652397814767519481234710209452",
                "297295048248541998539773943654436570891",
                "223629964282213138350637630234383941186",
                "243959413222545377980179615990557206967"
            ]
        },
        "deprecated": false,
        "source": "https://github.com/openssl/openssl/commit/d8c51048ac037a21bae0f41cad7a3920dc7f3638",
        "signature_type": "Line",
        "target": {
            "file": "crypto/x509/x509_vfy.c"
        },
        "signature_version": "v1",
        "id": "CVE-2026-54876-eae8e811"
    }
]
source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-54876.json"
vanir_signatures_modified
"2026-08-07T08:11:15Z"