CVE-2026-42790: nameConstraints DNS bypass via subject CommonName fallback in public_key hostname verification
Improper Certificate Validation vulnerability in Erlang OTP public_key (pubkey_cert and public_key modules) allows a DNS nameConstraints bypass via subject CommonName fallback in TLS hostname verification.
Two flaws combine to allow a subordinate CA whose DNS nameConstraints are restricted (e.g. permitted;DNS:allowed.example.com) to issue a leaf certificate that an OTP TLS client accepts as a valid identity for an out-of-scope hostname (e.g. victim.example.com):
First, pubkey_cert:validate_names/6 in lib/public_key/src/pubkey_cert.erl only checks SAN DNS entries against nameConstraints. Per RFC 5280, a permitted DNS subtree only restricts certificates that contain a DNS-typed name. A leaf with no subjectAltName therefore trivially satisfies any permitted;DNS:... constraint regardless of its subject commonName.
Second, public_key:pkix_verify_hostname/3 in lib/public_key/src/public_key.erl falls back to the subject commonName when no subjectAltName is present, extracting id-at-commonName attributes as presented IDs and matching them against the reference hostname. The strict pkix_verify_hostname_match_fun(https) matcher does not suppress this fallback.
The result is that path validation accepts a CN-only leaf under a DNS-constrained intermediate (no SAN means the nameConstraints are not triggered), and hostname verification then accepts it via the CN fallback. The bypass is reachable from stock ssl:connect with verify_peer, a trusted CA, SNI, and the canonical strict https hostname matcher.
This issue affects OTP from OTP 19.3 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 1.4 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 TLS clients may trust a certificate for the wrong hostname when a DNS-restricted subordinate CA issues a certificate containing only a CommonName. This can undermine server identity checks and expose intercepted connections to data theft or modification. The flaw is rated high severity, but exploitation requires several specific certificate and connection conditions.
Executive priority
Prioritize remediation for Internet-facing or sensitive services whose OTP clients trust constrained subordinate CAs. The potential impact includes credential, session, or business-data interception and modification. Treat this as a high-priority upgrade, while recognizing that the documented prerequisites make broad opportunistic exploitation less likely than targeted abuse.
Technical view
Two validation behaviors combine: DNS name constraints check subjectAltName entries but do not constrain a CN-only certificate, while public_key hostname verification falls back to CommonName when no subjectAltName exists. Consequently, path validation can accept the certificate and hostname verification can match its out-of-scope CommonName. Stock ssl:connect configurations using verify_peer and the strict HTTPS matcher are reachable.
Likely exposure
Exposure exists where affected Erlang/OTP versions make outbound TLS connections, perform peer and hostname verification, and trust DNS-constrained subordinate CAs. Applications are particularly relevant if they depend on name constraints to limit those CAs. Systems not using OTP TLS clients or not trusting constrained intermediates are less likely exposed, but inventory evidence is required.
Exploitation context
No active exploitation is established: the source bundle marks this CVE absent from KEV and provides no cited exploitation report. Abuse requires a trusted, DNS-constrained subordinate CA, a CN-only leaf certificate naming an unauthorized host, and a connection scenario involving that certificate. CVSS 4.0 rates it 7.6 with high confidentiality and integrity impact.
Researcher notes
Affected scope is stated as OTP 19.3 through versions preceding the listed fixed releases, corresponding to public_key versions before the listed branch fixes. The bundle includes vendor patches but does not establish exploit availability or exploitation in the wild. Validate branch-specific applicability carefully because the supplied affected-package metadata is less precise than the narrative version statement.
Mitigation direction
Upgrade to the applicable fixed OTP release: 29.0.1, 28.5.0.1, 27.3.4.12, or 26.2.5.21.
Alternatively, update public_key to the corresponding fixed version: 1.21.1, 1.20.3.1, 1.17.1.3, or 1.15.1.7.
For older or unclear branches, obtain the supported upgrade path from Erlang/OTP vendor guidance.
Review trusted subordinate CAs and reduce unnecessary trust, prioritizing intermediates with DNS name constraints.
Validation and detection
Inventory Erlang/OTP and public_key versions in applications that initiate TLS connections.
Confirm whether applications use ssl:connect with verify_peer and hostname verification.
Inspect relevant trust stores for subordinate CAs carrying permitted or excluded DNS name constraints.
Verify deployed versions meet an applicable fixed release threshold after remediation.
Regression-test rejection of CN-only certificates naming hosts outside a trusted intermediate's permitted DNS subtree.
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.
2CVSS vectors
5Timeline events
2ADP providers
12Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
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 Validation of Certificate with Host Mismatch
Improper Validation of Certificate with Host Mismatch represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.