Skip to content
OpenAdvisories
High · 8.7 CVE-2026-71889 EUVD-2026-91990GHSA-hqqj-v58h-gr7x

PKIXCertPathReviewer does not apply X.509 name constraints to the target certificate

Published Oct 3, 2026 · Updated Oct 5, 2026 · Assigned by bcorg

Description

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).

Affected products

VendorProductAffectedFixed
Legion of the Bouncy Castle BC-JAVA < 1.86 1.86
Legion of the Bouncy Castle BC-LTS-JAVA 2.73.0 – < 2.73.13 2.73.13
Legion of the Bouncy Castle BC-FJA 1.0.4 – < 1.0.13, 2.0.0 – < 2.0.13, 2.1.0 – < 2.1.13 1.0.13

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 bouncycastle 1.86-1 —
Debian 13 bouncycastle No fix yet —
Debian 12 bouncycastle No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 bouncycastle No fix yet —
Ubuntu 26.04 LTS bouncycastle No fix yet —
Show 5 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 24.04 LTS bouncycastle No fix yet —
Ubuntu Pro 22.04 LTS bouncycastle No fix yet —
Ubuntu Pro 20.04 LTS bouncycastle No fix yet —
Ubuntu Pro 18.04 LTS bouncycastle No fix yet —
Ubuntu Pro 16.04 LTS bouncycastle No fix yet —
ReleasePackageFixed inAdvisory
SLES 15 SP7 bouncycastle 1.86-150200.3.41.1 SUSE-SU-2026:4797-1
SLES 15 SP6 bouncycastle 1.86-150200.3.41.1 SUSE-SU-2026:4797-1
SLES 15 SP5 bouncycastle 1.86-150200.3.41.1 SUSE-SU-2026:4797-1
SLES 15 SP4 bouncycastle 1.86-150200.3.41.1 SUSE-SU-2026:4797-1
Show 7 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES for SAP 16.0 bouncycastle 1.86-160000.1.1 SUSE-SU-2026:24461-1
SLES for SAP 15 SP6 bouncycastle 1.86-150200.3.41.1 SUSE-SU-2026:4797-1
SLES for SAP 15 SP5 bouncycastle 1.86-150200.3.41.1 SUSE-SU-2026:4797-1
SLES for SAP 15 SP4 bouncycastle 1.86-150200.3.41.1 SUSE-SU-2026:4797-1
SLES 16.0 bouncycastle 1.86-160000.1.1 SUSE-SU-2026:24461-1
SLE HPC 15 SP5 bouncycastle 1.86-150200.3.41.1 SUSE-SU-2026:4797-1
SLE HPC 15 SP4 bouncycastle 1.86-150200.3.41.1 SUSE-SU-2026:4797-1
ReleasePackageFixed inAdvisory
openSUSE Tumbleweed bouncycastle 1.86-1.1 openSUSE-SU-2026:12090-1
openSUSE Leap 16.0 bouncycastle 1.86-160000.1.1 openSUSE-SU-2026:22169-1

Wolfi

ReleasePackageFixed inAdvisory
Wolfi rolling gradle-8 8.14.6-r5 —
Wolfi rolling gradle-9 9.8.2-r3 —

Advisories 6

References