CVE-2026-42789: Non-CA certificate accepted as intermediate issuer in public_key path validation
Improper Following of a Certificate's Chain of Trust vulnerability in Erlang OTP public_key (pubkey_cert module) allows a non-CA certificate to be accepted as an intermediate issuer, enabling certificate chain forgery.
In lib/public_key/src/pubkey_cert.erl, pubkey_cert:validate_extensions/7 contains two flaws that together allow a certificate with basicConstraints cA:false and no keyUsage extension to be used as an intermediate issuer in a chain passed to public_key:pkix_path_validation/3: the cA:false clause recurses into the remaining extensions without rejecting the certificate when it is in issuer position, and the keyUsage check only fires when the extension is present, so a certificate lacking keyUsage entirely bypasses the keyCertSign enforcement.
Any party holding an end-entity certificate with basicConstraints cA:false and no keyUsage extension, issued by any CA in the victim's trust store, can use that certificate's private key to sign forged leaf certificates for arbitrary identities. public_key:pkix_path_validation/3 accepts the resulting chain, and by extension every TLS or mTLS endpoint built on the OTP ssl application that relies on the default verifier is affected, including server identity verification on the client side and client certificate verification on mTLS servers.
This issue affects OTP from OTP 17.0 before OTP 29.0.1, OTP 28.5.0.1, OTP 27.3.4.12 and OTP 26.2.5.21, corresponding to public_key from 0.22 before 1.21.1, 1.20.3.1, 1.17.1.3 and 1.15.1.7.
Security readout for executives and security teams
Plain-English summary
Erlang OTP may trust a certificate that is explicitly not a certificate authority as though it could issue other certificates. An attacker with a suitable legitimate end-entity certificate and its private key could forge identities accepted by affected OTP TLS or mTLS applications, risking impersonation and data disclosure or modification.
Executive priority
Treat as a high-priority identity-trust issue. Expedite remediation for externally connected TLS clients, mTLS gateways, and services protecting sensitive data. The prerequisites make exploitation harder, but successful abuse could bypass certificate-based identity controls without affecting availability, making normal uptime monitoring unlikely to reveal it.
Technical view
Two public_key validation flaws allow an issuer-position certificate with basicConstraints cA:false and no keyUsage extension to bypass CA and keyCertSign enforcement. public_key:pkix_path_validation/3 may therefore accept forged chains. Affected OTP ssl clients and mTLS servers using the default verifier can accept attacker-signed leaf certificates.
Likely exposure
Exposure exists where OTP 17.0 or later runs an affected public_key release and performs TLS server verification or mTLS client verification through the default OTP verifier. Custom verification paths may differ and require review. Internet-facing services, internal service authentication, and trusted-CA configurations should all be inventoried.
Exploitation context
The CVSS score is 8.0 with high complexity and user interaction required. Exploitation requires control of a suitable CA-issued end-entity certificate and its private key, then an opportunity to present a forged chain. The supplied record is not in CISA KEV, and the sources provide no evidence of active exploitation.
Researcher notes
The vulnerable combination is cA:false with no keyUsage extension: validation recurses after cA:false, while keyCertSign enforcement occurs only when keyUsage exists. The supplied affected-version metadata is inconsistent in places; use the Erlang advisory and branch-specific fixed releases as authoritative upgrade references. No exploit status beyond the supplied non-KEV indication is established.
Mitigation direction
Upgrade to OTP 29.0.1 or the fixed release for the deployed supported branch.
Fixed branch releases include 28.5.0.1, 27.3.4.12, and 26.2.5.21.
Confirm the resulting public_key version matches the vendor advisory's fixed releases.
Prioritize TLS clients and mTLS servers that rely on OTP's default certificate verifier.
Review Erlang and downstream vendor guidance before applying compensating controls.
Validation and detection
Inventory deployed OTP and public_key versions, including bundled runtimes and containers.
Identify applications calling public_key:pkix_path_validation/3 directly or through OTP ssl.
Determine whether TLS or mTLS uses the default verifier or custom certificate validation.
Verify patched staging systems reject non-CA certificates when used as intermediate issuers.
Retest server identity and mTLS client authentication after upgrading.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-295: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-295 · source CWE mapping
Improper Certificate Validation
Improper Certificate Validation represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
Improper Following of a Certificate's Chain of Trust
Improper Following of a Certificate's Chain of Trust represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.