Bouncy Castle for Java: 25 Vulnerabilities Disclosed in Single Batch on August 3, 2026
A coordinated disclosure on August 3, 2026, revealed 25 vulnerabilities in Bouncy Castle for Java, impacting versions prior to 1.85 and its LTS/FIPS variants.

Key findings
- 25 vulnerabilities disclosed in Bouncy Castle for Java on August 3, 2026, affecting versions prior to 1.85.
- Issues include denial-of-service, data forgery, unbounded memory allocation, and certificate validation bypasses.
- Critical and High severity flaws impact core cryptographic functions and protocols like OpenPGP, DTLS, and PKCS#12.
- Affected versions include standard, LTS, and FIPS variants of Bouncy Castle for Java.
- Prompt patching is essential for all users to mitigate these widespread security risks.
On August 3, 2026, a significant batch of 25 vulnerabilities was disclosed for Bouncy Castle for Java, affecting versions prior to 1.85. These vulnerabilities, disclosed within a three-hour window, span a range of security issues including denial-of-service (DoS) conditions, data forgery, and potential for unbounded memory allocation, posing a considerable risk to applications relying on this widely used cryptography library.
Several vulnerabilities stem from improper handling of input lengths and allocations, which could lead to Denial of Service (DoS) attacks. CVE-2026-14682 describes a possible Out-of-Memory (OOM) error due to unbounded upfront allocation on definite-length reads. Similarly, CVE-2026-12852 involves the MLS wire decoder allocating an attacker-declared opaque length before a bounds check, and CVE-2026-59646 details a DTLS handshake reassembler allocating a buffer from an unchecked 24-bit length. CVE-2026-59645 highlights an OER parser that recurses without a depth limit on self-referential schemas, potentially leading to excessive resource consumption.
Other vulnerabilities expose weaknesses in cryptographic integrity and authentication mechanisms. CVE-2026-13586 details a PKCS#12 MAC and bag-decryption KDF iteration-count bound that could be exploited for DoS. CVE-2026-12803 points to a KCCMBlockCipher MAC that does not bind the nonce when AAD is absent, enabling cross-nonce AEAD forgery. CVE-2026-12816 describes an IESEngine stream-mode MAC forgery via a length-dependent KDF split. Furthermore, CVE-2026-59650 indicates that MTI/A0 DH agreement exponentiates an unvalidated peer value, and CVE-2026-59642 notes that CMS AuthenticatedData content is not bound to the MAC when authentication attributes are present.
Specific to certificate and key management, CVE-2026-8763 involves a Name Constraints bypass via a trailing dot in rfc822Name and URI, and CVE-2026-58062 describes a critical issue where a stapled OCSP response is accepted without binding to the checked certificate. CVE-2026-59651 points to a BKS keystore that accepts a legacy version with a 16-bit integrity MAC key.
Several issues relate to OpenPGP and other protocols. CVE-2026-12817 highlights that OpenPGP AEAD decryption skips the final tag on chunk-aligned data. CVE-2026-59649 indicates that OpenPGP user-attribute subpacket length is bounded only by JVM max memory, and CVE-2026-59648 shows that OpenPGP Argon2 S2K honors attacker-chosen memory and passes. CVE-2026-59644 involves an MLS hash-ratchet that honors an arbitrary 32-bit generation counter from the sender.
The batch also includes vulnerabilities related to ASN.1 parsing and key store handling. CVE-2026-13506 describes a lazy ASN.1 sequence forcing resets of the nesting-depth guard. CVE-2026-58063 indicates that the BCFKS keystore load honors unbounded KDF cost from an untrusted file. CVE-2026-59652 points to an LDAP filter injection vulnerability in the legacy jdk1.4 LDAPStoreHelper. Additionally, CVE-2026-12860 reveals that RSA PKCS#1 verification skips the last two hash bytes in the NULL-omitted path, and CVE-2026-58061 notes that CCM-family modes write plaintext to the caller buffer before the tag check. Finally, CVE-2026-59645 addresses an OER parser that recurses without a depth limit on a self-referential IEEE 1609.2 schema.
All these vulnerabilities affect Bouncy Castle for Java versions prior to 1.85. The Long-Term Support (LTS) versions are affected prior to 2.73.12, and various FIPS versions are also impacted, with specific version numbers detailed in the CVE descriptions. Users are strongly advised to update to the patched versions as soon as possible to mitigate these risks.
This extensive disclosure highlights the critical importance of regularly updating cryptographic libraries. The sheer number and variety of vulnerabilities underscore the complexity of cryptographic implementations and the need for rigorous security auditing. Users of Bouncy Castle for Java should prioritize applying the available patches to protect their systems from potential exploits.
The affected versions include Bouncy Castle for Java before 1.85, Bouncy Castle for Java LTS before 2.73.12, and various FIPS versions such as bc-fips before 1.0.2.7 (1.0.X series), 2.0.2 (2.0.X series), and 2.1.3 (2.1.X series), bcpg-fips before 1.0.13 (1.0.X series), 2.0.13 (2.0.X series), and 2.1.13 (2.1.X series), bcpkix-fips before 1.0.12 (1.0.X series), 2.0.12 (2.0.X series), and 2.1.12 (2.1.X series), bctls-fips before 1.0.24 (1.0.X series), 2.0.24 (2.0.X series), and 2.1.24 (2.1.X series), and bcutil-fips before 2.0.7 (2.0.X series) and 2.1.7 (2.1.X series).
The broad impact across different Bouncy Castle for Java variants, including LTS and FIPS versions, necessitates a comprehensive update strategy for all users. The timely disclosure of these 25 CVEs on August 3, 2026, allows developers to address these critical security flaws.
The vulnerabilities disclosed include:
- Denial of Service (DoS) via unbounded allocations and iteration counts (CVE-2026-14682, CVE-2026-13586, CVE-2026-59645).
- Cryptographic integrity and forgery issues in various protocols like PKCS#12, AEAD, IESEngine, and CMS (CVE-2026-12803, CVE-2026-12816, CVE-2026-12817, CVE-2026-59642).
- Certificate and key management bypasses and weaknesses (CVE-2026-8763, CVE-2026-58062, CVE-2026-59651).
- Protocol-specific vulnerabilities in OpenPGP, DTLS, and MLS (CVE-2026-12817, CVE-2026-59649, CVE-2026-59648, CVE-2026-59644, CVE-2026-59646).
- ASN.1 parsing and keystore handling flaws (CVE-2026-13506, CVE-2026-58063).
- RSA PKCS#1 verification issues (CVE-2026-12860).
- LDAP filter injection (CVE-2026-59652).
Users should consult the official Bouncy Castle advisories for detailed remediation steps and specific version information. Given the critical and high severity of many of these flaws, prompt patching is essential. The coordinated disclosure of these vulnerabilities on August 3, 2026, provides a clear roadmap for security updates.