Skip to main content

Bouncy Castle Java CVE-2026-15055

| EUVDEUVD-2026-52019 MEDIUM
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-03 bcorg GHSA-mx98-27g8-c9xc
5.3
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft PKCS#8 key with extreme KDF cost
  2. Delivery
    Submit key via upload or API endpoint
  3. Exploit
    Application invokes BC PBES2 decryptor
  4. Execution
    Unbounded scrypt/PBKDF2 computation begins
  5. Persist
    CPU or JVM memory exhausted
  6. Impact
    Thread/process denial of service

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires that the target application uses a Bouncy Castle PKCS#8 or PBES2 decryptor (specifically JceOpenSSLPKCS8DecryptorProviderBuilder or JcePKCSPBEInputDecryptorProviderBuilder) to decrypt key material that originates from an attacker-controlled source. Concrete scenarios include: an API endpoint that accepts user-uploaded PEM private keys, a TLS mutual-authentication flow that parses externally provided client certificates, or an SSH/PKI key-management feature that imports key files from user input. The attacker does not need to know the encryption password - only to supply a PKCS#8 container with an inflated KDF cost in the metadata. Exploitation is limited by the requirement that an application code path actually invokes the Bouncy Castle decryptor on untrusted input without pre-validation; applications that only decrypt internally-generated keys (where KDF parameters are trusted) are not exploitable. The CVSS UI:P metric reflects that some triggering action by the application (or its user) is required to initiate decryption.

Impact

The CVSS 4.0 base score of 5.3 (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L) reflects a moderate, network-reachable DoS with low availability impact. The UI:P metric is significant: passive user interaction is required, meaning the target application must actually attempt to decrypt attacker-supplied key material. This constrains exploitation to scenarios where an application loads external or user-supplied PEM/PKCS#8 private keys - TLS mutual-authentication endpoints that accept client certificates, certificate management APIs, SSH-key-import features, or similar flows. EPSS data is not provided in the input. There is no KEV listing and no POC has been identified, suggesting no confirmed opportunistic exploitation. The real-world priority is moderate: the impact ceiling is a process-level DoS (CPU/memory exhaustion on the thread that triggers decryption) rather than code execution or data exfiltration. However, any service that accepts key material from untrusted users and immediately decrypts it is directly exploitable with a trivially crafted PKCS#8 file, making the attack low-complexity once an applicable endpoint is found. The SUSE tag in the intelligence data suggests downstream Linux distribution tracking, which may broaden the effective patch surface.

Exploit ScenarioDerived

An attacker submits a crafted PKCS#8-encoded private key - for example, through a mutual-TLS client-certificate upload endpoint or a key-import API - in which the scrypt cost parameter N is set to an astronomically large value (e.g., 2^30) within the unauthenticated ASN.1 container. When the application calls a Bouncy Castle PBES2 decryptor to decrypt the key, it allocates and processes gigabytes of scrypt working memory before returning an error, causing the handling thread to stall and potentially crashing the JVM with an OutOfMemoryError. No public POC has been identified, but the attack requires only knowledge of PKCS#8 ASN.1 structure and is trivially constructable with standard tooling.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 03, 2026

Denial-of-service via unbounded KDF cost in Bouncy Castle for Java's PKCS#8 / PBES2 decryptors allows remote attackers to exhaust CPU or memory by supplying crafted encrypted key material with extreme KDF parameters. The vulnerability affects bc-java before 1.85, bc-lts-java before 2.73.12, and BC-FJA (bcpkix-fips) across all supported 1.0.X, 2.0.X, and 2.1.X series. No public exploit has been identified at time of analysis, and active exploitation has not been confirmed by CISA KEV.

RemediationAI

Upgrade to bc-java 1.85 or later, bc-lts-java 2.73.12 or later, or the appropriate BC-FJA release (bcpkix-fips 1.0.12, 2.0.12, or 2.1.12 depending on the series in use). The patch is confirmed via commit 7ab4ee6 at https://github.com/bcgit/bc-java/commit/7ab4ee67a0135950001b29b41a96d8a9a5d3b68b and advisory at https://github.com/bcgit/bc-java/wiki/CVE-2026-15055. If immediate patching is not possible, a compensating control is to set the JVM system properties org.bouncycastle.pbe.max_iteration_count and org.bouncycastle.pbe.max_scrypt_memory to conservative upper bounds (the patched defaults are 10,000,000 iterations and 1,073,741,824 bytes respectively); note these properties are only honoured after upgrading to the fixed version, so they are not retroactively applicable to unpatched jars. For applications that load external key material, the most effective architectural mitigation is to reject or sandbox PKCS#8/PEM input from untrusted sources before passing it to Bouncy Castle decryptors - for example, validating that supplied key files originate from trusted internal sources, which eliminates the attacker-controlled KDF cost vector entirely without requiring an application restart.

Affected VersionsENISA

BC-FJA 1.0.0 <1.0.12
BC-FJA 2.1.0 <2.1.12
BC-LTS-JAVA 2.73.0 <2.73.12
BC-JAVA 0 <1.85
BC-FJA 2.0.0 <2.0.12

Affected Packages

euvd bc_fja fix: 1.0.12, 2.0.12, 2.1.12
euvd bc_java fix: 1.85
euvd bc_lts_java fix: 2.73.12

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 3 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

PKCS#8 and PBES2 (Password-Based Encryption Scheme 2) protect private keys by deriving an encryption key from a password via a KDF - either PBKDF2 or scrypt. Critically, the KDF cost parameters (PBKDF2 iteration count, scrypt N cost factor, r block size) are stored inside the encrypted-key ASN.1 container as unauthenticated metadata that the decryptor reads and acts upon before any authentication occurs. In all affected Bouncy Castle versions, the decryptors JceOpenSSLPKCS8DecryptorProviderBuilder and JcePKCSPBEInputDecryptorProviderBuilder honoured whatever iteration count or scrypt cost was embedded in this unauthenticated container with no upper bound. CWE-770 (Allocation of Resources Without Limits or Throttling) describes this class: the application allocates CPU cycles or memory proportional to an attacker-controlled integer with no ceiling check. Affected CPEs include cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-java:*, bc-lts-java:*, and bc-fja:*. The fix, visible in commit 7ab4ee6, introduces Properties.PBE_MAX_ITERATION_COUNT (default 10,000,000) and Properties.PBE_MAX_SCRYPT_MEMORY (default 1 GiB) with bounds-checking functions invoked before key derivation begins.

Know when Java gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (bcorg) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/U:Amber
vuln.today AI 4.3 MEDIUM

Network-reachable but requires application to actively process attacker-supplied key material (UI:R); no confidentiality or integrity impact, only limited availability exhaustion.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
SUSE MEDIUM
Red Hat 7.5 HIGH

Primary rating from Vendor (bcorg).

CVSS VectorVendor: bcorg

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

In Bouncy Castle for Java before 1.85, PKCS#8 / PBES2 decryptors honour unbounded KDF cost from input. This issue also affects Bouncy Castle for Java LTS before 2.73.12, and Bouncy Castle for Java FIPS (BC-FJA) before bcpkix-fips 1.0.12 (1.0.X series), 2.0.12 (2.0.X series) and 2.1.12 (2.1.X series).

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
High
widely used Java cryptography library across enterprise and open-source ecosystems
Data Quality
8 sources
Confidence: High
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
High
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected
SUSE Linux Enterprise Module for Development Tools 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected
SUSE Linux Enterprise Server 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy