Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGenerate attacker-controlled CA and leaf cert
-
DeliveryPresent chain with rogue intermediate as anchor
-
ExploitwolfSSL X509_verify_cert skips trusted-store enforcement
-
ExecutionForged certificate accepted as trusted
-
ImpactImpersonate identity or forge signed artifact
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
|
| Exploitation Conditions | Exploitation requires the target application to be built with --enable-opensslextra (OPENSSL_EXTRA) AND to validate certificates by calling the OpenSSL-compat X509_verify_cert() with caller-supplied untrusted intermediate certificates (for the TLS deferred/manual-verification variant, --enable-sessioncerts is additionally required). Given that, no attacker authentication or user interaction is needed (PR:N/UI:N) and the attacker only needs to present a chain containing a single attacker-controlled intermediate as the anchor. Limiting factors that reduce real-world exposure: native wolfSSL TLS/DTLS and the default WOLFSSL_VERIFY_PEER handshake are not vulnerable, so the bug does not affect standard TLS server/client verification; only the specific compatibility-API verification flow (commonly S/MIME/CMS, code/firmware signing, JWT/JWS x5c, or manual TLS peer checks) is exposed. |
| Impact | The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) scores 8.7 with a single high integrity impact (VI:H) and no confidentiality or availability impact, which matches the nature of the bug: it does not leak or destroy data, it defeats authentication of certificates. The network vector and no-privileges/no-interaction metrics reflect that a remote attacker only needs to present a crafted chain to a vulnerable verifier. The critical caveat is that exploitability is gated by application build and usage: it requires --enable-opensslextra AND an application calling X509_verify_cert() with untrusted intermediates (and --enable-sessioncerts for the deferred-TLS variant), so the CVSS network/no-privilege metrics describe the attacker's position but understate the deployment-specific precondition. Native wolfSSL TLS/DTLS and the default WOLFSSL_VERIFY_PEER handshake are NOT affected, which materially narrows the population at risk. No EPSS score, KEV listing, or POC was provided; the supplied source evidence is a regression test fixture set (untrusted_anchor certs) from the fix PR, not a weaponized exploit. Net: this is a genuinely high-severity authentication bypass for the specific subset of wolfSSL consumers using the OpenSSL-compat verification API, but a low real-world-priority issue for the much larger set of users relying on native TLS verification. |
| Exploit ScenarioDerived | An attacker generates their own CA and uses it to sign a leaf certificate for a target identity (e.g. a firmware-signing identity or a JWS x5c subject), then presents the leaf together with their attacker-controlled CA as an untrusted intermediate to an application that verifies it via wolfSSL's X509_verify_cert(). Because the verifier lets the supplied intermediate anchor the path instead of requiring a configured root, the forged certificate is accepted, enabling certificate impersonation, forged code/firmware signatures, or spoofed signed messages. No POC was provided, but the fix PR ships ready-made fixture certificates (untrusted_anchor leaf/int-ca/alt-ca) demonstrating exactly such a chain. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 25, 2026
X.509 trust-chain bypass in wolfSSL's OpenSSL compatibility certificate verifier (wolfSSL_X509_verify_cert/X509_verify_cert) allows an attacker to have an attacker-controlled certificate accepted as valid by presenting a chain that never reaches a configured trust anchor. The flaw affects only builds compiled with --enable-opensslextra whose applications perform certificate validation via the OpenSSL-compat X509_verify_cert() API using caller-supplied untrusted intermediates; for those deployments it is critical (CVSS 4.0 base 8.7, integrity impact only). There is no public exploit identified at time of analysis and it is not on CISA KEV, but an upstream fix is available via wolfSSL PR #10674.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - apply the wolfSSL fix from https://github.com/wolfSSL/wolfssl/pull/10674 and consult https://www.wolfssl.com/docs/security-vulnerabilities/ for the corresponding tagged release, then rebuild and redeploy affected applications. As an interim compensating control, if your build does not actually need the OpenSSL compatibility layer, compile without --enable-opensslextra (and without --enable-sessioncerts where the deferred-TLS path is used), which removes the vulnerable code path entirely but breaks any code depending on OpenSSL-compat APIs. Where the X509_verify_cert() API must remain, avoid feeding untrusted/caller-supplied intermediates directly into the verification store and instead pre-populate the certificate manager only with vetted intermediates, or add an explicit post-verification check that the resulting chain terminates at a known trusted root before accepting the certificate; the trade-off is added application-side validation logic. Because the flaw also impacts non-TLS uses (S/MIME/CMS, code/firmware signing, JWT/JWS x5c), audit those consumers as well, not just TLS code.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability lives in wolfSSL's OpenSSL compatibility layer, specifically the X509_verify_cert() path used with X509_STORE_CTX. To emulate OpenSSL semantics, wolfSSL temporarily loads each caller-supplied untrusted intermediate certificate into its internal certificate manager so the path can be built. The defect (CWE-295, Improper Certificate Validation) is that these temporary intermediates were not dropped before the trusted-store anchor check ran, so an untrusted intermediate could itself serve as the trust anchor that terminates path validation. Because the verifier never confirms the chain reaches a configured root, any chain ending in an attacker-supplied CA is accepted. This is generic certificate verification independent of TLS - it applies to S/MIME/CMS, code and firmware signing, and JWT/JWS x5c validation - and is independent of key type or algorithm; a single untrusted intermediate is sufficient. The affected component is identified by cpe:2.3:a:wolfssl:wolfssl:*:*:*:*:*:*:*:* across all versions prior to the fix.
Know when OpenSSL gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Remote attacker presents a crafted chain with no privileges or interaction (AV:N/AC:L/PR:N/UI:N); only certificate-trust integrity is broken (I:H), with no direct confidentiality or availability loss.
Primary rating from Vendor (wolfSSL).
CVSS VectorVendor: wolfSSL
DescriptionCVE.org
X.509 trust-chain bypass in the OpenSSL compatibility certificate verifier (wolfSSL_X509_verify_cert()). This affects only builds with --enable-opensslextra (OPENSSL_EXTRA) and whose application validates certificates by calling X509_verify_cert() with caller-supplied untrusted intermediate certificates; for those users it is critical, otherwise the library is unaffected. In particular, native wolfSSL TLS/DTLS usage is not impacted. wolfSSL's X509_verify_cert() temporarily loads each caller-supplied untrusted intermediate into the certificate manager but failed to drop them before the trusted-store check, so an untrusted intermediate could anchor the path itself. An attacker can present a chain that never reaches a configured trust anchor and have it accepted, resulting in acceptance of an attacker-controlled certificate. This is certificate verification independent of TLS (e.g. S/MIME/CMS, code/firmware signing, JWT/JWS x5c), is not specific to any key type or algorithm, and a single untrusted intermediate suffices. The default wolfSSL TLS handshake (WOLFSSL_VERIFY_PEER) is not affected; only TLS applications doing manual or deferred peer verification through this API are, which also requires --enable-sessioncerts.
Executive ViewAI
wolfSSL versions with OpenSSL compatibility mode contain a certificate validation bypass (CVE-2026-11310, CVSS 8.7) that allows invalid certificates to be accepted as valid by vulnerable applications. Organizations whose infrastructure depends on wolfSSL for TLS security face elevated risk of man-in-the-middle attacks against encrypted communications. No public exploit code exists, but the validation control weakness requires immediate patching.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
The (1) TLS and (2) DTLS implementations in OpenSSL 1.0.1 before 1.0.1g do not properly handle Heartbeat Extension packe
In order to decrypt SM2 encrypted data an application is expected to call the API function EVP_PKEY_decrypt(). Rated cri
The dtls1_reassemble_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
The SSLv2 protocol, as used in OpenSSL before 1.0.1s and 1.0.2 before 1.0.2g and other products, requires a server to se
The ssl3_get_key_exchange function in s3_clnt.c in OpenSSL before 0.9.8zd, 1.0.0 before 1.0.0p, and 1.0.1 before 1.0.1k
In addition to the c_rehash shell command injection identified in CVE-2022-1292, further circumstances where the c_rehas
The TLS protocol 1.2 and earlier, when a DHE_EXPORT ciphersuite is enabled on a server but not on a client, does not pro
The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and other products, uses nondeterministic CBC padding, which mak
The AES-NI implementation in OpenSSL before 1.0.1t and 1.0.2 before 1.0.2h does not consider memory allocation during a
The X509_verify_cert function in crypto/x509/x509_vfy.c in OpenSSL 1.0.1n, 1.0.1o, 1.0.2b, and 1.0.2c does not properly
A buffer overrun can be triggered in X.509 certificate verification, specifically in name constraint checking. Rated hig
EUVD-2026-39548
GHSA-h4wh-367g-85gm
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB