Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain leaf cert from name-constrained CA
-
DeliveryCraft leaf violating NameConstraints subtrees
-
ExploitPresent chain to reviewer-based trust check
-
ExecutionReviewer skips leaf, returns valid
-
ImpactImpersonate unauthorized identity / MITM
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V12 - Secure Communication Certificate validation
|
| Exploitation Conditions | Exploitation requires BOTH: (1) the application uses org.bouncycastle.pkix.jcajce.PKIXCertPathReviewer (or legacy org.bouncycastle.x509.PKIXCertPathReviewer) and relies on its isValidCertPath() result to make the trust decision - not the unaffected CertPathValidator "PKIX"/"BC", and not merely for per-certificate diagnostics; and (2) the trust chain contains an issuing CA carrying an X.509 NameConstraints extension that the end-entity (leaf) certificate's subject DN or subjectAltName actually violates. LIMITING FACTORS: this is a non-default API choice (the standard PKIX validator is not vulnerable), name-constrained CA hierarchies are relatively uncommon, and the bug only affects the leaf - intermediate CA constraint checks still worked. No authentication is required of the attacker (PR:N), but the vulnerability window is defined entirely by the victim's validation architecture rather than by any attacker-controlled configuration. |
| Impact | This is a certificate-validation bypass (CWE-295) in Bouncy Castle's PKIXCertPathReviewer, scored CVSS 4.0 8.7 (High) by the vendor with vector AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H - i.e. a remote, unauthenticated integrity impact with no confidentiality or availability loss. The raw score looks alarming, but the exploitation signals temper it sharply: no EPSS score, KEV status, or POC was provided (treat as no public exploit identified), and crucially the flaw only matters when an application uses the reviewer's isValidCertPath() to MAKE the trust decision rather than for per-certificate diagnostics alongside a real validation. The standard, recommended API - CertPathValidator.getInstance("PKIX","BC") - shares no code with the reviewer and correctly rejects the same chain, so correctly-architected consumers are NOT affected. This means real-world risk is a narrow API-misuse pattern rather than a blanket library flaw: high severity where the misuse exists, but low population of truly exploitable deployments. CONFLICT TO NOTE: the official vector sets VC:N, yet a certificate-trust bypass can enable TLS MITM with downstream confidentiality loss - the direct scored impact is integrity (accepting a forged identity), with confidentiality a possible second-order consequence not reflected in the base score. Overall: credible but conditional - prioritize only if you know you consume the reviewer for trust decisions. |
| Exploit ScenarioDerived | An attacker obtains an end-entity (leaf) certificate from a CA that is subject to a NameConstraints extension, where the leaf's subject DN or subjectAltName falls outside the CA's permitted/excluded subtrees. If the victim application uses PKIXCertPathReviewer.isValidCertPath() as its actual trust gate, the reviewer returns true with an empty error list and accepts the unauthorized certificate, enabling the attacker to impersonate an identity the constrained CA was never authorised to vouch for (e.g. TLS server impersonation / MITM). No public exploit code was identified at time of analysis; exploitation hinges on the application's choice of validation API. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 03, 2026
Certificate-validation bypass in Bouncy Castle for Java lets a PKIXCertPathReviewer accept an end-entity certificate that violates a NameConstraints extension imposed by its own issuing CA, causing isValidCertPath() to return true with an empty error list for a chain the real PKIX validator rejects. Affected are BC-Java before 1.86, BC-LTS-Java before 2.73.13, and BC-FJA (bcpkix-fips) before 1.0.13 / 2.0.13 / 2.1.13; exploitation requires an application that uses org.bouncycastle.pkix.jcajce.PKIXCertPathReviewer (or the legacy org.bouncycastle.x509 copy) to make the trust decision rather than the unaffected CertPathValidator "PKIX"/"BC", and a chain whose leaf actually breaches the CA's permitted or excluded subtrees. No public exploit code has been identified at time of analysis, the vulnerability is unauthenticated (CVSS PR:N) per the vendor vector, and the vendor scores it CVSS 4.0 8.7 (High) for high integrity impact; note that an independent assessment rates attack complexity higher (CVSS 3.1 AV:N/AC:H) because the exposure depends entirely on non-default application architecture rather than on anything the attacker controls.
RemediationAI
Vendor-released patches exist: upgrade Bouncy Castle for Java to 1.86 or later, BC-LTS-Java to 2.73.13 or later, and BC-FJA (bcpkix-fips) to 1.0.13 on the 1.0.X series, 2.0.13 on the 2.0.X series or 2.1.13 on the 2.1.X series; see the advisory at https://github.com/bcgit/bc-java/wiki/CVE%E2%80%902026%E2%80%9071889 and the fixing commit https://github.com/bcgit/bc-java/commit/06dcff2f51037095de126986285c998e3455ab85. Where an immediate upgrade is not possible, the most effective compensating control is architectural: stop using PKIXCertPathReviewer's isValidCertPath() as the trust decision and instead rely on the unaffected CertPathValidator.getInstance("PKIX", "BC"), whose name-constraint processing already covered the target certificate - the trade-off is that the reviewer's per-certificate diagnostic output (its intended use) must be retained separately if it is still wanted, and any code branching on isValidCertPath() must be refactored so exceptions from the validator, not a boolean, drive the decision. Because the defect only manifests when the leaf actually breaches a NameConstraints extension issued by its CA, disabling or not issuing name-constrained CAs in the trust set removes the exposure entirely, at the cost of losing the scope-limiting protection that name constraints provide for subordinate CAs. Audit existing trust stores and configuration for CAs that carry NameConstraints extensions and treat certificates issued by them as unvalidated if they were previously approved via the reviewer; no network- or port-level mitigation is applicable because this is a client-side validation logic defect, not a remotely reachable service.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is in X.509 path validation logic (CWE-295, improper certificate validation) implementing RFC 5280 section 6.1.3 (b) and (c). Both copies of PKIXCertPathReviewer - org.bouncycastle.pkix.jcajce.PKIXCertPathReviewer and the legacy org.bouncycastle.x509.PKIXCertPathReviewer - iterated the certificate path in checkNameConstraints() with a loop bound of index > 0. That bound is correct for the CA-only processing steps, but under standard CertPath ordering index 0 is the target (leaf) certificate, so the permitted-subtree and excluded-subtree comparisons were never performed against the leaf's subject DN or its subjectAltName. As a result the reviewer reported isValidCertPath() true with an empty error list for a chain whose leaf violated a NameConstraints extension imposed by its issuing CA, while CertPathValidator.getInstance("PKIX", "BC") - which shares no code with the reviewer and walks index >= 0 through RFC3280CertPathUtilities.processCertBC - rejected the identical chain against the identical trust anchor. The fix makes both copies check every certificate in the path including the target, waives the RFC 5280 section 4.2.1.10 self-issued exemption for the final certificate as section 6.1.3 requires, and skips the section 6.1.4 (g) constraint-accumulation step for the target since no next certificate exists to accumulate into. Intermediate CA constraint checks were never broken, so the defect is confined to the leaf; name-constrained CA hierarchies are relatively uncommon, and the standard PKIX validator path is unaffected, which limits real-world exposure. CPE data confirms four affected product lines: bc-java, bc-lts-java and bc-fja under Legion of the Bouncy Castle Inc.
Know when Java 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/U:Amber
AV:N and PR:N since an unauthenticated remote attacker presents a crafted cert; AC:H because success depends on the victim using the reviewer for trust plus a name-constrained CA chain (conditions beyond attacker control); I:H trust bypass, C:N/A:N per direct impact.
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Primary rating from Vendor (bcorg).
CVSS VectorVendor: bcorg
DescriptionCVE.org
In Bouncy Castle for Java before 1.86, neither copy of PKIXCertPathReviewer - org.bouncycastle.pkix.jcajce.PKIXCertPathReviewer nor the legacy org.bouncycastle.x509.PKIXCertPathReviewer - applied X.509 name constraints to the end-entity certificate. checkNameConstraints walked the path with a loop bound of index greater than zero, which is the bound the CA-only steps require, but index zero is the target certificate under the standard CertPath ordering, so the permitted and excluded subtree checks of RFC 5280 sec. 6.1.3 (b) and (c) never ran against the leaf's subject DN or its subjectAltName. A chain whose leaf violated a NameConstraints extension imposed by its own issuing CA therefore reported isValidCertPath() true with an empty error list, while CertPathValidator.getInstance("PKIX", "BC"), which shares no code with the reviewer, rejected the identical chain against the identical trust anchor. An application using the reviewer to make the trust decision rather than for diagnostics alongside a real validation accepted a certificate the constrained CA was never authorised to issue. Both copies now check every certificate in the path including the target, waive the sec. 4.2.1.10 self-issued exemption for the final certificate as sec. 6.1.3 requires, and skip the sec. 6.1.4 (g) constraint-accumulation step for the target. This issue also affects Bouncy Castle for Java LTS before 2.73.13, which carries only the org.bouncycastle.pkix.jcajce copy of the reviewer. It also affects Bouncy Castle for Java FIPS (BC-FJA) before bcpkix-fips 1.0.13 (1.0.X series), 2.0.13 (2.0.X series) and 2.1.13 (2.1.X series).
Articles & Coverage 1
Executive ViewAI
A certificate-validation bypass in Bouncy Castle for Java - a cryptography library embedded in a large share of enterprise Java applications, API gateways, and signing services - can cause affected software to accept a certificate that its own issuing authority explicitly prohibited, while reporting validation success with no errors. Organizations are exposed wherever an application delegates its trust decision to the affected PKIXCertPathReviewer class rather than the standard validator, meaning a single unpatched service could admit an unauthorized identity into TLS, authentication, or code-signing workflows and undermine trust in downstream systems. Leadership should treat this as a trust-integrity risk rather than a routine library update, and prioritize remediation accordingly, since no public exploit identified at time of analysis and the vulnerability is unauthenticated per the vendor CVSS vector.
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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
Same weakness CWE-295 – Improper Certificate Validation
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise Desktop 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP7 | Affected |
| SUSE Linux Enterprise Server 15 SP7 | Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Enterprise Storage 7 | Affected |
| SUSE Enterprise Storage 7.1 | Affected |
| SUSE Linux Enterprise Desktop 15 SP2 | Affected |
| SUSE Linux Enterprise Desktop 15 SP3 | Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP2 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP2 | Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP3 | Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| SUSE Manager Server 4.3 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
| SUSE Linux Enterprise Server for NVIDIA 16.1 | Affected |
EUVD-2026-91990
GHSA-hqqj-v58h-gr7x
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB