Skip to main content

Bouncy Castle Java EUVDEUVD-2026-52088

| CVE-2026-58063 MEDIUM
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-08-03 bcorg GHSA-jmxg-924w-f7mv
5.3
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

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

  1. Recon
    Craft BCFKS keystore with inflated PBKDF2/scrypt cost params
  2. Delivery
    Deliver malicious keystore to target application path or endpoint
  3. Exploit
    Application calls KeyStore.load() with untrusted file
  4. Install
    Library reads KDF params from unverified keystore
  5. C2
    Unbounded PBKDF2 or scrypt KDF executes pre-MAC-check
  6. Execute
    CPU or JVM heap exhausted
  7. Impact
    Application service denied

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 loads a BCFKS-format keystore file whose KDF parameters are attacker-controlled - either because the attacker can write or substitute the keystore file on disk, intercept and replace it during network retrieval, or inject it through any other path by which the application accepts a keystore from an external or untrusted source. The vulnerability fires inside KeyStore.load() before the integrity MAC is verified, so no keystore password is needed to trigger resource exhaustion. Limiting factors: (1) the application must use the BCFKS keystore format specifically (not JKS, PKCS12, or other formats); (2) the application must process a keystore file originating from an untrusted or attacker-reachable source - applications loading keystores exclusively from local, operator-controlled paths are not exposed via remote attack; (3) the CVSS 4.0 vector includes UI:P, indicating the application (or an operator action) must perform the load, which does not occur in all deployment configurations automatically.

Impact

The provided CVSS 4.0 score of 5.3 (Medium) reflects a network-reachable, low-complexity, unauthenticated vector that requires only passive user interaction (application loading the keystore) but limits measured impact to low availability in the vulnerable system with no confidentiality or integrity consequence. The upstream reporter assigned Urgency: Amber, indicating elevated but not critical concern. No EPSS score was provided in the intelligence data; no KEV listing and no public exploit code were identified, suggesting exploitation has not been observed at scale. Real-world risk is gated by a non-trivial pre-condition: the target application must be made to load a BCFKS keystore file whose content is attacker-influenced - a condition that is realistic in scenarios involving external keystore provisioning, automated certificate management pipelines, or where an attacker has achieved MitM or supply-chain position. Applications that load keystores exclusively from local, trusted paths face substantially lower exposure. The CVSS impact of VA:L in the provided vector may understate the potential severity: unbounded scrypt parameters could in principle exhaust the full JVM heap, warranting consideration of a higher availability rating.

Exploit ScenarioDerived

An attacker who can supply or substitute a BCFKS keystore file - for example by poisoning a network-accessible keystore endpoint, manipulating a certificate automation pipeline, or delivering a malicious file via a phishing vector targeting an operator - crafts the file with a PBKDF2 iteration count near Integer.MAX_VALUE or scrypt parameters sized to fill available RAM. When the target Java application calls KeyStore.load() with the malicious file, the library begins computing the integrity-MAC key using the untrusted KDF parameters before any authenticity check runs, exhausting CPU or memory and rendering the application or service unresponsive. No public exploit code has been identified at time of analysis.

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

CPU and memory exhaustion in Bouncy Castle Java's BCFKS keystore loader exposes applications to pre-integrity-verification denial of service when processing a crafted keystore file. Any of the three affected library variants - bc-java (before 1.85), bc-lts-java (before 2.73.12), and BC-FJA (before 1.0.2.7, 2.0.2, or 2.1.3 depending on series) - will blindly honour attacker-supplied PBKDF2 iteration counts or scrypt cost parameters read from an untrusted file before the keystore MAC is verified, allowing an adversary to trigger arbitrary CPU or memory consumption at load time. No public exploit code has been identified and the vulnerability is absent from CISA KEV; urgency is rated Amber by the upstream reporter.

RemediationAI

Upgrade to the earliest fixed release for your library variant: bc-java 1.85 or later, bc-lts-java 2.73.12 or later, bc-fja 1.0.2.7 (1.0.X series), 2.0.2 (2.0.X series), or 2.1.3 (2.1.X series). The fix is confirmed in upstream commit 81737a56ef4489da1f849cf549df95e338ea6b06 (https://github.com/bcgit/bc-java/commit/81737a56ef4489da1f849cf549df95e338ea6b06) and advisory at https://github.com/bcgit/bc-java/wiki/CVE-2026-58063. If upgrading immediately is not feasible, the patched code exposes two tunable bounds: set the system property org.bouncycastle.bcfks.max_it_count to a low value (e.g., 200000) to cap PBKDF2 iterations at load time, and org.bouncycastle.bcfks.max_scrypt_memory to a low byte limit (e.g., 67108864 for 64 MiB) to cap scrypt memory; both properties are read by Properties.asInteger() in the fixed code. As a compensating control, restrict the application's keystore-loading path so that only keystores from trusted, integrity-verified sources are processed, reducing exposure to attacker-supplied files.

Affected VersionsENISA

BC-FJA 2.1.0 <2.1.3
BC-JAVA 0 <1.85
BC-LTS-JAVA 2.73.0 <2.73.12
BC-FJA 2.0.0 <2.0.2
BC-FJA 1.0.0 <1.0.2.7

Affected Packages

euvd bc_fja fix: 1.0.2.7, 2.0.2, 2.1.3
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

Bouncy Castle Java implements the BCFKS (Bouncy Castle FIPS Keystore) format, which embeds the key-derivation function parameters - either PBKDF2 iteration count or scrypt N/r/p values - inside the keystore file itself. These KDF parameters are consumed to derive the integrity-MAC key before the MAC is checked, creating a classic TOCTOU-style resource exhaustion window: the attacker's cost parameters are honoured prior to any authenticity guarantee. The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling). The fix, visible in commit 81737a56 of bcgit/bc-java, introduces two configurable ceilings - BCFKS_MAX_IT_COUNT (default 5,000,000 for PBKDF2, vs. the writer's normal ~51,200) and BCFKS_MAX_SCRYPT_MEMORY (default 1 GiB, vs. the writer's normal ~16 MiB) - and also hard-caps the scrypt block-size parameter r at 1,024 to prevent CPU exhaustion independent of memory. Affected CPE strings are cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-java:*:*:*:*:*:*:*:*, cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-lts-java:*:*:*:*:*:*:*:*, and cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-fja:*:*:*:*:*:*:*:*.

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 6.5 MEDIUM

No privileges required; application must load the crafted keystore (UI:R); availability is High because unbounded scrypt can exhaust full JVM heap.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 4.3 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
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, BCFKS keystore load honours unbounded KDF cost from untrusted file. This issue also affects Bouncy Castle for Java LTS before 2.73.12, and Bouncy Castle for Java FIPS (BC-FJA) before bc-fips 1.0.2.7 (1.0.X series), 2.0.2 (2.0.X series) and 2.1.3 (2.1.X series).

Threat Intelligence Overview

EPSS Score
0.3%
Top 75% exploitable
Prevalence
High
widely used Java cryptographic provider across enterprise and OSS 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