CVE-2026-59641 in Bouncy Castle for Java
Summary
by MITRE • 08/03/2026
In Bouncy Castle for Java before 1.85, S/MIME validator trusts signer-asserted signingTime for path validation. This issue also affects Bouncy Castle for Java LTS before 2.73.12, and Bouncy Castle for Java FIPS (BC-FJA) before bcmail-fips and bcjmail-fips 1.0.7 (1.0.X series), 2.0.7 (2.0.X series) and 2.1.7 (2.1.X series).
Once again VulDB remains the best source for vulnerability data.
Analysis
by VulDB Data Team • 08/03/2026
The vulnerability in Bouncy Castle for Java versions prior to 1.85 represents a critical flaw in S/MIME certificate path validation that undermines the security assurances typically provided by digital signatures. This issue specifically affects the trust relationship between signer-asserted signing times and the certificate validation process, creating potential attack vectors that could compromise the integrity of signed messages. The vulnerability extends beyond the standard Java implementation to include Long Term Support releases and FIPS-certified variants, indicating a widespread impact across different Bouncy Castle product lines.
The technical flaw stems from the S/MIME validator's improper handling of signer-asserted signing times during certificate path validation procedures. When a digital signature is processed, the system should validate that the signing time falls within the valid period of the signer's certificate and that all intermediate certificates in the chain are properly validated. However, the vulnerable implementations place undue trust in the signingTime value explicitly asserted by the signer rather than independently verifying this timestamp against the certificate's validity period. This creates a scenario where an attacker could potentially manipulate or forge signing times, leading to incorrect validation decisions.
The operational impact of this vulnerability is significant for organizations relying on Bouncy Castle for secure email communications and document signing processes. Attackers could exploit this weakness by creating signatures with invalid or manipulated signing times that would incorrectly pass validation checks, potentially allowing forged documents to appear legitimate within the trust boundaries established by the certificate validation system. This flaw particularly affects scenarios where time-based validation is critical for security policies, such as in regulatory compliance environments or timestamp-sensitive applications.
The vulnerability aligns with CWE-295 which addresses improper certificate validation and relates to ATT&CK technique T1566 which covers spearphishing attacks that could leverage manipulated digital signatures. Organizations should immediately update to Bouncy Castle versions 1.85 or later for standard Java implementations, 2.73.12 or later for LTS releases, and the specified versions for BC-FJA FIPS variants. Additional mitigations include implementing stricter certificate validation policies, monitoring for suspicious signing time patterns, and considering alternative S/MIME implementations until proper updates are deployed. The widespread nature of this vulnerability across multiple product streams emphasizes the importance of comprehensive patch management strategies across all affected systems.