Impact
A vulnerability in Bouncy Castle’s PKIX CompositeVerifier—implemented in JcaContentVerifierProviderBuilder.Java and JcaContentVerfierProviderBuilder.Java—allows the verifier to accept an empty signature sequence as valid, effectively treating a chain of certificates without proper signatures as trustworthy. This flaw, classified as CWE-327 and CWE-347, is present in all pkix modules of BC-JAVA, BCPKIX-FIPS, and BCPIX-LTS within the affected version ranges, enabling an attacker to forge trusted certificates.
Affected Systems
The vulnerability affects Bouncy Castle’s BC-JAVA library in versions 1.67 through 1.80.1, 1.81, and 1.82 up to 1.83; the BCPKIX-FIPS library in versions 2.0.6 through 2.0.10 and 2.1.7 through 2.1.10; and the BCPIX-LTS library in versions 2.73.7 through 2.73.10. Any Java application that utilizes the bc-pkix module or these libraries during PKIX verification is vulnerable until it upgrades to a non-affected release.
Risk and Exploitability
The vulnerability has a CVSS score of 6.3. The EPSS score indicates a very low but nonzero exploitation probability, and the vulnerability is not listed in CISA’s KEV catalog. The likely attack vector is through the construction of a forged certificate chain. Any application that performs PKIX verification using the affected library could be compromised. Without an available exploit track, the risk remains significant because the flaw enables the attacker to bypass certificate validation entirely, granting them authority equivalent to a trusted party.
OpenCVE Enrichment
Github GHSA