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:13.584Z
Modified
2026-07-15T01:49:04.278021103Z
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 publickey (pubkeyocsp module) allows forged OCSP responses signed with an expired responder certificate to be accepted as valid.

OCSP response verification in pubkeyocsp:verifyresponse/5 and pubkeyocsp:isauthorizedresponder/3 in lib/publickey/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 publickey:pkixocsp_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 27.3.4.12, 28.5.0.1, and 29.0.1 corresponding to public_key from 1.16 before 1.17.1.3, 1.20.3.1, and 1.21.1.

Database specific
{
    "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"
        }
    ],
    "cna_assigner": "EEF"
}
References

Affected packages

Git / github.com/erlang/otp

Affected ranges

Type
GIT
Repo
https://github.com/erlang/otp
Events
Database specific
{
    "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"