CVE-2026-42791

Source
https://cve.org/CVERecord?id=CVE-2026-42791
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-42791.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-42791
Aliases
Downstream
Related
Published
2026-05-27T12:23:13Z
Modified
2026-08-21T09:27:06Z
Severity
  • 6.3 (Medium) CVSS_V4 - CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N CVSS Calculator
Summary
OCSP responder certificate validity period not checked in public_key
Details

Improper Certificate Validation vulnerability in Erlang OTP public_key (pubkey_ocsp module) allows forged OCSP responses signed with an expired responder certificate to be accepted as valid.

OCSP response verification in pubkey_ocsp:verify_response/5 and pubkey_ocsp:is_authorized_responder/3 in lib/public_key/src/pubkey_ocsp.erl does not check the validity period (notBefore/notAfter) of the OCSP responder certificate. An attacker who has obtained the private key of an expired CA-designated OCSP responder certificate can forge OCSP responses that Erlang/OTP accepts as valid.

This affects TLS clients using OCSP stapling via the ssl application: a malicious or compromised server can present a revoked TLS certificate together with a forged OCSP response signed by an expired responder key, and the client will accept the revoked certificate as valid. It also affects applications calling public_key:pkix_ocsp_validate/5 directly, where the impact depends on the use case — server-side client certificate validation using this API may allow authentication bypass with a revoked client certificate.

This issue affects OTP from OTP 27.0 before OTP 29.0.1, OTP 28.5.0.1 and OTP 27.3.4.12, corresponding to public_key from 1.16 before 1.21.1, 1.20.3.1 and 1.17.1.3.

Database specific
{
    "cna_assigner": "EEF",
    "cwe_ids": [
        "CWE-295",
        "CWE-672"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42791.json",
    "unresolved_ranges": [
        {
            "extracted_events": [
                {
                    "introduced": "1.16"
                },
                {
                    "fixed": "*"
                },
                {
                    "introduced": "27.0"
                },
                {
                    "fixed": "*"
                },
                {
                    "introduced": "2b1a742c651b90f8a7a1fb2ddde73f29915ea376"
                },
                {
                    "fixed": "*"
                }
            ],
            "source": "AFFECTED_FIELD"
        }
    ]
}
References

Affected packages

Git / github.com/erlang/otp

Affected ranges

Type
GIT
Repo
https://github.com/erlang/otp
Events
Database specific
Show details
{
    "cpe": "cpe:2.3:a:erlang:erlang\\/otp:*:*:*:*:*:*:*:*",
    "extracted_events": [
        {
            "introduced": "27.0"
        },
        {
            "fixed": "27.3.4.12"
        },
        {
            "introduced": "28.0"
        },
        {
            "fixed": "28.5.0.1"
        },
        {
            "introduced": "29.0"
        },
        {
            "fixed": "29.0.1"
        }
    ],
    "source": [
        "CPE_RANGE",
        "REFERENCES"
    ]
}

Affected versions

OTP-27.*
OTP-27.0
OTP-27.1
OTP-27.2
OTP-27.3
OTP-27.3.1
OTP-27.3.2
OTP-27.3.3
OTP-27.3.4
OTP-27.3.4.1
OTP-27.3.4.10
OTP-27.3.4.11
OTP-27.3.4.2
OTP-27.3.4.3
OTP-27.3.4.4
OTP-27.3.4.5
OTP-27.3.4.6
OTP-27.3.4.7
OTP-27.3.4.8
OTP-27.3.4.9
OTP-28.*
OTP-28.0
OTP-28.1
OTP-28.4
OTP-28.5
OTP-29.*
OTP-29.0
Other
patch-base-27
patch-base-28

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-42791.json"