
PEACH
Un cadre d’isolation des locataires
CVE-2026-97873 is a Denial of Service vulnerability in Bouncy Castle for Java caused by unbounded iteration counts in legacy PBES1 (PKCS#5 scheme 1) and PKCS#12 PBE password-based key derivation functions. Affected products are bcprov (all versions before 1.86) and bcprov-lts8on (versions 2.73.0 through before 2.73.13) by Legion of the Bouncy Castle Inc. The vulnerability was published on October 3, 2026, with a patch available in the same release cycle. It carries a CVSS v4.0 base score of 5.3 (Medium) (GitHub Advisory, BC-Java Wiki).
The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling): the AlgorithmParameters implementations for PKCS12PBE (and its OID aliases such as pbeWithSHAAnd3-KeyTripleDES-CBC) and PBKDF1 accepted any iteration count from an encoded PKCS12PBEParams or PBEParameter without validation, and narrowed values beyond the int range using intValue() (causing a wire count of 2^32 to arrive as 0). Every Cipher, Mac, and SecretKeyFactory in these families then derived keys using whatever count was supplied, including counts decoded by a third-party provider — for example, when javax.crypto.EncryptedPrivateKeyInfo.getKeySpec(key, "BC") decrypts a PKCS#12 PBE-protected private key, the JDK's own provider decodes the parameters and passes only the resulting PBEParameterSpec to BC's Cipher, bypassing any parameter-parser bound. Because these schemes are unauthenticated, no verification occurs before the expensive derivation: a 52-byte encrypted key carrying the maximum iteration count held a single getKeySpec call for approximately 20 minutes of CPU. The fix (commit 766a310) applies the existing org.bouncycastle.pbe.max_iteration_count property (default 10,000,000) — already used for PBKDF2 (CVE-2026-17508) — to both the parameter parse and the derivation engine, and additionally rejects counts beyond the int range rather than narrowing them (BC-Java Wiki, Fix Commit).
Successful exploitation causes excessive CPU consumption on the server processing the crafted input, potentially blocking the affected thread indefinitely and denying service to legitimate users attempting to decrypt PBE-protected keys or data. There is no impact on confidentiality or integrity — the vulnerability is purely an availability issue. Any application using Bouncy Castle's raw JCA provider to process externally supplied PKCS#12 or PBES1-encrypted structures (e.g., private key decryption via EncryptedPrivateKeyInfo.getKeySpec) is at risk, and a single small crafted input (~52 bytes) can monopolize CPU for extended periods (BC-Java Wiki, GitHub Advisory).
There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at the time of disclosure (GitHub Advisory). The EPSS score is 0.0, reflecting very low current exploitation probability. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. No threat actor attribution has been reported. The attack requires passive user interaction (a user or service must process the attacker-supplied encoded structure), but no authentication or privileges are required, making it accessible to unauthenticated network attackers in scenarios where the application accepts externally supplied cryptographic objects.
PKCS12PBEParams or PBEParameter ASN.1 structure — for example, setting the iteration count to Integer.MAX_VALUE (2,147,483,647) or a value exceeding the int range to trigger the intValue() narrowing bug.javax.crypto.EncryptedPrivateKeyInfo.getKeySpec() or a BC Cipher/SecretKeyFactory with PKCS12PBE/PBES1 parameters).org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2, org.bouncycastle.crypto.generators.PKCS12ParametersGenerator).EncryptedPrivateKeyInfo.getKeySpec() or BC Cipher decryption with PBE algorithms.Upgrade Bouncy Castle for Java to version 1.86 or later (artifact bcprov), or to bcprov-lts8on 2.73.13 or later for the LTS variant. As a configuration-based mitigation or defense-in-depth measure, set the JVM system property org.bouncycastle.pbe.max_iteration_count to an appropriate upper bound (the default in patched versions is 10,000,000); note that deployments that previously raised org.bouncycastle.pkcs12.max_it_count above 10,000,000 must also raise org.bouncycastle.pbe.max_iteration_count to match. The PKCS#8 decryptors in the PKIX API (JcePKCSPBEInputDecryptorProviderBuilder) and the provider's PKCS#12 key store were already bounded and are not affected (BC-Java Wiki, Fix Commit).
The vulnerability was credited to researcher Arpan Sharma and disclosed by the Bouncy Castle maintainers (David Hook) via the project's GitHub wiki on October 3, 2026. No significant broader media coverage or notable community commentary beyond the official advisory and standard vulnerability database aggregation has been observed at this time (BC-Java Wiki).
Source: Ce rapport a été généré à l’aide de l’IA
Évaluation gratuite des vulnérabilités
Évaluez vos pratiques de sécurité cloud dans 9 domaines de sécurité pour évaluer votre niveau de risque et identifier les failles dans vos défenses.
Obtenez une démo personnalisée
"La meilleure expérience utilisateur que j’ai jamais vue, offre une visibilité totale sur les workloads cloud."
"Wiz fournit une interface unique pour voir ce qui se passe dans nos environnements cloud."
"Nous savons que si Wiz identifie quelque chose comme critique, c’est qu’il l’est réellement."