Fedora Account System
Red Hat Associate
Red Hat Customer
A flaw was found in JSS (Java Security Services). The JSSTrustManager class, which implements javax.net.ssl.X509TrustManager for JSS-based TLS connections, does not filter CA certificates by NSS trust flags when building its set of accepted issuers. The getAcceptedIssuers() method returns all certificates with basicConstraints CA=TRUE from the NSS database regardless of whether they carry TRUSTED_CA trust flags, and checkSignature() performs only cryptographic signature validation against this unfiltered set. This means a certificate present in the NSS database with only VALID_CA flags (as set by routine operations such as certificate enrollment via CERT_ImportCAChainTrusted) could be treated as a trust anchor for TLS connections. In default configurations, the native revocation verification check (certChainRevokeVerify) catches this condition because NSS's native verification properly validates trust flags. However, if revocation checking is disabled, an attacker controlling the private key of an under-trusted CA could forge certificates accepted by JSSTrustManager, enabling man-in-the-middle attacks on outbound PKI client connections.