CVE-2026-89133
Executive Summary
CVE-2026-89133 is a certificate validation bypass in wolfSSL versions 5.9.2 and earlier affecting the X.509 NameConstraints enforcement logic. Applications built against the default wolfSSL configuration that rely on NameConstraints to scope intermediate CA authority may accept leaf certificates for hostnames that should be cryptographically prohibited. The flaw does not require authentication and is exploitable by an attacker who can present a certificate chain signed by a constrained CA, enabling impersonation of out-of-scope services in TLS and mutual-TLS contexts.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
Technical Analysis
The vulnerability resides in the X.509 certificate path validation logic, specifically in the mechanism that enforces NameConstraints extensions across a certificate chain. NameConstraints is a standard X.509v3 extension carried in CA certificates that restricts the namespace (DNS names, IP ranges, directory names, email addresses) that subordinate CAs may issue for. Correct enforcement requires that constraints propagate down the entire chain: every certificate below a constrained CA must be evaluated against all ancestor constraints.
Per the NVD description, wolfSSL fails to enforce NameConstraints when an unconstrained CA tier sits between a name-constrained intermediate CA and the leaf certificate. The root cause is characterized as a chain-walking state-machine bug: while traversing the certification path, the validation state that tracks active NameConstraints is reset upon encountering an intermediate certificate that lacks the NameConstraints extension. This reset discards the constraints imposed by a higher intermediate CA, causing subsequent leaf certificates to be validated as if no constraints were in force.
This constitutes a bypass of cryptographic delegation controls. A constrained subordinate CA is meant to be trusted only for a limited namespace; the state-machine defect effectively elevates its authority. The issue exists in the default build configuration that makes use of certificates with name constraint extensions — meaning no special compile-time opt-in is required for the vulnerable code path to be reachable when such certificates are in use.
Because the flaw is in chain state tracking rather than in parser memory handling, it does not necessarily produce crashes or memory-safety symptoms, making it difficult to detect via fuzzing or crash telemetry. It is a pure logic defect. Reported by Jack Lloyd, PathDiff, and Ben Smyth.
Comparison of the affected library context:
- wolfSSL is widely embedded — IoT devices, RTOS environments, firmware, and lightweight TLS workloads — which broadens the practical attack surface beyond traditional server fleets.
- NameConstraints-based hierarchies are most common in enterprise PKI, private CA deployments, and large-scale certificate authorities that delegate issuance to subordinate CAs. Organizations using single-tier CAs with no NameConstraints are not exposed.
No CVE-specific code, function names, or line references are available in the supplied intelligence; the above is a vulnerability-class and mechanism analysis derived strictly from the NVD description.
Exploitation Scenarios
No public proof-of-concept, exploit code, or Nuclei template is available for this CVE. The attack chain below is inferred at the vulnerability-class level and does not rely on invented implementation details.
Reconnaissance / target identification. An attacker identifies a service that (a) uses wolfSSL 5.9.2 or earlier in its default configuration and (b) trusts a CA hierarchy in which at least one intermediate CA carries a NameConstraints extension. Such hierarchies are discoverable through certificate transparency logs by inspecting issued intermediates for the NameConstraints extension, or by observing chain structures during normal TLS handshakes with client software.
Triggering the flaw class. The attacker obtains — legitimately or through compromise — a certificate issued by a constrained subordinate CA. That certificate names a hostname outside the CA's permitted namespace. Because wolfSSL resets constraint state when it encounters the unconstrained intermediate tier between the constrained CA and the leaf, the out-of-scope hostname is accepted as valid during path validation.
Execution. The attacker presents the crafted chain during a TLS handshake to a wolfSSL-based server or to a wolfSSL-based client performing mutual authentication. The validation routine traverses root → constrained intermediate → unconstrained intermediate → leaf, discards the NameConstraints during the walk, and returns success.
Post-exploitation impact. Successful validation enables impersonation of a service outside the constrained CA's intended scope. Impacts include interception of traffic via a rogue endpoint, authentication bypass in mutual-TLS-protected APIs, and unauthorized issuance recognition in any workflow that trusts the affected wolfSSL validator as the authority on certificate legitimacy.
Constraint state reset occurs at the unconstrained intermediate tier — the exact configuration that the flaw description identifies as necessary for the bug to manifest.
Impact Assessment
- Confidentiality: High — an attacker impersonating an out-of-scope service can harvest credentials, session tokens, or sensitive data from clients that accept the spoofed endpoint.
- Integrity: High — mutual-TLS authentication decisions made by a wolfSSL peer can be forged toward the attacker's favor.
- Availability: Not directly implicated — this is a validation logic bypass, not a denial-of-service defect.
- Scope: Unchanged in CVSS terms, but the practical blast radius extends to every relying party that consumes wolfSSL validation results within the affected PKI hierarchy.
- Affected systems: embedded/IoT products, lightweight server workloads, and any application linking wolfSSL ≤ 5.9.2 in which NameConstraints-bearing chains are evaluated. Exposure is highest in enterprises that operate multi-tier CAs with constrained subordinates — a common pattern for delegated issuance and cross-organization certificate sharing.
- Attack complexity: Low, per the described mechanism; no user interaction is required if the vulnerable validator is reachable, and no prior authentication is needed for the TLS handshake path.
No official CVSS score or vector was provided by the CNA/NVD. The vector above is a reasoned estimate and should be treated as provisional.
Detection Guidance
Detection centers on certificate-chain anomalies — specifically, chains in which a NameConstraints-bearing CA appears below or alongside an unconstrained tier while the leaf lies outside the constrained namespace. Because wolfSSL operates at the library level, host-based detection focuses on TLS library telemetry and application logs; network detection focuses on malformed or unexpected chain structure in handshake traffic.
Sigma Rule
title: Potentially Malicious X.509 Chain Violating NameConstraints Scope
id: 3f6a2b1c-8913-4a7e-9d2f-cve202689133
status: experimental
description: Detects TLS validation events where a leaf certificate's SAN falls outside the namespace of a NameConstraints-bearing CA in the presented chain (CVE-2026-89133).
references:
- https://nvd.nist.gov/vuln/detail/CVE-2026-89133
author: valtersit.com
date: 2026/01/01
logsource:
category: application
product: wolfssl
detection:
selection:
event.category: 'network'
tls.server.certificate_chain|contains:
- 'nameConstraints'
tls.client.server_name|exists: true
message|contains:
- 'chain validation'
- 'name constraint'
- 'certificate verify'
filter_legit:
tls.server.certificate_chain|contains: 'permitted subtree'
condition: selection and not filter_legit
falsepositives:
- Custom CA hierarchies without NameConstraints enforcement
- Interoperability test traffic
level: high
YARA Rule
rule CVE_2026_89133_wolfSSL_NameConstraints_Bypass
{
meta:
description = "Detects wolfSSL binaries or patches referencing NameConstraints chain-walking logic (CVE-2026-89133)"
author = "valtersit.com"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-89133"
date = "2026-01-01"
severity = "high"
strings:
$s1 = "NameConstraints" ascii nocase
$s2 = "name_constraint" ascii nocase
$s3 = "wolfSSL" ascii nocase
$s4 = "X509_VERIFY_PARAM" ascii
$s5 = "permittedSubtrees" ascii nocase
$s6 = "excludedSubtrees" ascii nocase
condition:
(uint16(0) == 0x5A4D or uint32(0) == 0x464C457F) and
filesize < 50MB and
any of ($s1, $s2) and $s3 and
any of ($s4, $s5, $s6)
}
Suricata IDS Rule
alert tls any any -> any any (msg:"CVE-2026-89133 wolfSSL NameConstraints Bypass - Suspicious Intermediate Chain"; flow:established,to_server; tls.subject:"NameConstraints"; tls.store; sid:202689133; rev:1; metadata:affected_product wolfSSL, cve CVE-2026-89133, created_at 2026_01_01; classtype:bad-unknown;)
Note: Suricata's stock TLS keywords cannot fully parse NameConstraints subtrees. For production use, pair this rule with JA3/JA4 fingerprinting and a Lua or JA3-based certificate-chain correlator, or forward certificate chains to a purpose-built PKI validation log pipeline.
Elastic Detection
sequence by host.id, process.entity_id with maxspan=10s
[network where network.protocol == "tls" and tls.server.certificate_chain != null]
[process where event.action == "certificate_verify" and process.name in ("wolfssl", "wolfcrypt") and
process.args : "*name_constraint*"]
Splunk SPL Query
index=tls OR index=proxy sourcetype=tls:handshake OR sourcetype=wolfssl:log
| search "nameConstraints" OR "name_constraint" OR "X509_V_ERR"
| eval chain_len=mvcount(mvindex(split(tls_server_certificate_chain, ";"), 0))
| where isnull(permitted_subtrees) OR permitted_subtrees=""
| stats count values(dest) as affected_hosts values(client_sni) as requested_sni by src_ip
| where count > 0
| sort - count
Wazuh OSSEC Rule
<group name="wolfssl,cve_2026_89133,">
<rule id="202689133" level="12">
<decoded_as>json</decoded_as>
<field name="tls.server.certificate_chain">\.*nameConstraints\.*</field>
<description>CVE-2026-89133: wolfSSL certificate chain accepted with NameConstraints bypass risk</description>
<mitre>
<id>T1190</id>
</mitre>
<group>certificate_validation_bypass,</group>
</rule>
<rule id="202689134" level="10">
<decoded_as>json</decoded_as>
<field name="message">\.*(certificate verify|chain validation).*(name constraint|NameConstraints).*</field>
<description>CVE-2026-89133: wolfSSL validation event referencing NameConstraints handling</description>
<mitre>
<id>T1190</id>
</mitre>
</rule>
</group>
Mitigation & Patch Guidance
Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).
- Immediate mitigations
- Audit certificate chains trusted by wolfSSL-backed endpoints. Identify any hierarchy where a NameConstraints-bearing intermediate CA sits above an unconstrained intermediate. These are the only configurations exposed.
- Where operationally feasible, flatten the PKI: remove unconstrained intermediate tiers positioned between a constrained CA and leaf issuance, eliminating the exact chain topology that triggers the state-reset bug.
- Enforce NameConstraints independently of wolfSSL at a fronting proxy or service-mesh layer for any externally reachable TLS termination.
- Disable or narrowly scope trust anchors for constrained subordinate CAs on critical services until a fix lands.
- Monitor certificate transparency logs for leafs issued under constrained CAs that reference out-of-scope names — this detects both this CVE's abuse and genuine CA misbehavior.
- Patch/upgrade steps
- No vendor patch is available as of this report. Track wolfSSL release announcements and the official GitHub advisory channel.
- Do not upgrade blindly to a version solely because it is newer than 5.9.2; confirm the vendor explicitly states which release resolves the NameConstraints chain-walking defect.
- Pin the affected library versions in your SBOM so that, once a fix is published, impacted firmware and application builds can be identified and re-issued quickly.
- Long-term hardening
- Enforce strict path validation (RFC 5280) in an independent validator where the security decision is high-value; do not rely on a single embedded TLS library as the sole authority for certificate legitimacy.
- Require review and short validity windows for any subordinate CA that carries NameConstraints, so that scope violations are time-bounded.
- Add detection for anomalous certificate-chain structure to your PKI monitoring baseline, not just to this CVE's incident response.
- Maintain a software bill of materials covering embedded TLS libraries — wolfSSL deployments frequently sit in firmware where version tracking is otherwise weak.
References
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-89133
- CWE-295 — Improper Certificate Validation: https://cwe.mitre.org/data/definitions/295.html
- wolfSSL project (vendor): https://www.wolfssl.com/
- RFC 5280 — Internet X.509 PKI Certificate and CRL Profile (NameConstraints, §4.2.1.10): https://datatracker.ietf.org/doc/html/rfc5280#section-4.2.1.10
- Researchers credited: Jack Lloyd, PathDiff, Ben Smyth
Threat actor campaigns: none observed or attributed. CISA KEV: not listed. No public exploit code, PoC, or Nuclei template is available, and no in-the-wild exploitation has been reported at the time of writing.
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.