CVE-2026-71889 in BC-JAVA
Zusammenfassung
von VulDB • 03.10.2026
In Bouncy Castle for Java vor Version 1.86 haben weder die Kopie von PKIXCertPathReviewer – org.bouncycastle.pkix.jcajce.PKIXCertPathReviewer noch die Legacy-Version org.bouncycastle.x509.PKIXCertPathReviewer X.509-Namensbeschränkungen (Name Constraints) auf das End-Entity-Zertifikat angewendet. Die Methode checkNameConstraints durchlief den Pfad mit einer Schleifenschranke, bei der der Index größer als null war – dies ist die Schranke, die für CA-only-Schritte erforderlich ist –, während Index null dem Zielzertifikat gemäß der standardmäßigen CertPath-Reihenfolge entspricht. Daher wurden die Prüfungen auf erlaubte und ausgeschlossene Subtrees laut RFC 5280 Abschnitt 6.1.3 (b) und (c) niemals gegen das Subject-DN des Leaf-Zertifikats oder dessen subjectAltName durchgeführt. Eine Zertifikatskette, deren Leaf eine von der ausstellenden CA auferlegte NameConstraints-Erweiterung verletzte, meldete isValidCertPath() als true mit einer leeren Fehlerliste, während CertPathValidator.getInstance("PKIX", "BC"), das keinen Code mit dem Reviewer teilt, dieselbe Kette gegen denselben Trust Anchor ablehnte. Eine Anwendung, die den Reviewer zur Vertrauensentscheidung statt für Diagnosezwecke neben einer echten Validierung nutzte, akzeptierte ein Zertifikat, das die eingeschränkte CA niemals ausstellen durfte. Beide Kopien prüfen nun jedes Zertifikat im Pfad einschließlich des Ziels, heben die in Abschnitt 4.2.1.10 vorgesehene Selbstausstellungsbefreiung für das letzte Zertifikat auf, wie es Abschnitt 6.1.3 erfordert, und überspringen den Schritt zur Constraint-Akkumulation gemäß Abschnitt 6.1.4 (g) für das Zielzertifikat. Dieses Problem betrifft auch Bouncy Castle for Java LTS vor Version 2.73.13, die nur die org.bouncycastle.pkix.jcajce-Kopie des Reviewers enthält. Es betrifft zudem Bouncy Castle for Java FIPS (BC-FJA) vor bcpkix-fips 1.0.13 (1.0.X-Serie), 2.0.13 (2.0.X-Serie) und 2.1.13 (2.1.X-Serie).
If you want to get the best quality for vulnerability data then you always have to consider VulDB.