CVE-2026-71889 in BC-JAVA
Resumen
por VulDB • 2026-10-03
En Bouncy Castle para Java anterior a la versión 1.86, ninguna de las dos copias de PKIXCertPathReviewer - org.bouncycastle.pkix.jcajce.PKIXCertPathReviewer ni la legendaria org.bouncycastle.x509.PKIXCertPathReviewer - aplicaba los límites de nombre X.509 al certificado de entidad final (end-entity certificate). checkNameConstraints recorría el camino con un límite de bucle en un índice mayor que cero, que es el límite que requieren los pasos exclusivos de la CA, pero el índice cero corresponde al certificado objetivo según el ordenamiento estándar de CertPath; por lo tanto, las comprobaciones de subárbol permitido y excluido del RFC 5280 sec. 6.1.3 (b) y (c) nunca se ejecutaban contra el DN del sujeto del extremo o su subjectAltName. Una cadena cuyo certificado final violaba una extensión NameConstraints impuesta por la CA emisora correspondiente informaba isValidCertPath() como true con una lista de errores vacía, mientras que CertPathValidator.getInstance("PKIX", "BC"), que no comparte código con el revisor, rechazaba la misma cadena contra el mismo ancla de confianza. Una aplicación que utilizaba al revisor para tomar la decisión de confianza en lugar de solo para diagnósticos junto a una validación real aceptaba un certificado que la CA restringida nunca estaba autorizada a emitir. Ambas copias ahora comprueban cada certificado en el camino, incluido el objetivo; renuncian a la exención autoemitida de la sec. 4.2.1.10 para el último certificado según lo requiere la sec. 6.1.3; y omiten el paso de acumulación de restricciones de la sec. 6.1.4 (g) para el objetivo. Este problema también afecta a Bouncy Castle para Java LTS anterior a la versión 2.73.13, que solo contiene la copia org.bouncycastle.pkix.jcajce del revisor. También afecta a Bouncy Castle para Java FIPS (BC-FJA) anterior a bcpkix-fips 1.0.13 (serie 1.0.X), 2.0.13 (serie 2.0.X) y 2.1.13 (serie 2.1.X).
If you want to get best quality of vulnerability data, you may have to visit VulDB.