Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft OpenPGP SKESK packet with max Argon2 cost fields
-
DeliveryDeliver packet to network-exposed BC-based PGP service
-
ExploitLibrary reads unauthenticated cost parameters unconditionally
-
ExecutionJVM allocates up to 1 TiB heap and saturates CPU
-
ImpactService crash or sustained 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 | The target application must use Bouncy Castle for Java to process OpenPGP passphrase-based encrypted (symmetric) messages - specifically, it must invoke PBEDataDecryptorFactory or equivalent Bouncy Castle PGP decryption APIs against attacker-supplied ciphertext. The vulnerability triggers during the S2K key derivation phase, which occurs before any message authentication, so no valid passphrase or credential is needed by the attacker. The application does not need any non-default configuration to be vulnerable: the previous default max_memory_exp of 30 (1 TiB) and the absence of any pass or parallelism cap were the library's out-of-the-box behaviour. Exploitation is bounded by: (a) the target application must accept and process PGP-encrypted input from untrusted sources - applications that only decrypt internally-generated PGP traffic are not exposed; and (b) affected versions of the specific Bouncy Castle artifact (bc-java, bc-lts-java, or bcpg-fips) must be on the classpath. |
| Impact | The CVSS 4.0 vector provided (AV:N/AC:L/AT:N/PR:N/UI:N/VA:L) scores 6.9, but the VA:L rating appears to understate the realistic worst-case impact. Prior to the fix, a single crafted OpenPGP packet could request up to 1 TiB of heap allocation, which would crash virtually any JVM in a typical deployment - behaviour consistent with VA:H rather than VA:L. The discrepancy is worth flagging to defenders: the vendor's scoring may reflect an average-case impact assumption (most JVMs would attempt the allocation, OOM, and the operation would fail), rather than an all-or-nothing availability collapse. No EPSS data was provided in the intelligence package, and no CISA KEV entry exists, indicating no confirmed mass exploitation. The absence of any special configuration requirement (default Bouncy Castle behaviour was vulnerable) and the fully network-accessible attack vector with no authentication or user interaction required elevate operational risk for any Java application that processes inbound OpenPGP passphrase-encrypted messages. The vulnerability is straightforwardly reproducible from the public commit diff, which provides full technical disclosure of the flaw, though no weaponized POC has been identified. |
| Exploit ScenarioDerived | An attacker sends a crafted OpenPGP SKESK packet to any network-reachable service that uses Bouncy Castle to decrypt passphrase-protected PGP messages - such as a mail gateway, secure document upload endpoint, or PGP-decrypting microservice. The packet encodes Argon2 S2K cost parameters set to their maximum values (memory exponent 30, passes 255, parallelism 255), which the unpatched library reads from the unauthenticated packet header and unconditionally honours, causing the JVM to attempt allocation of approximately 1 TiB of heap and consume all available CPU lanes, crashing or hanging the service. No commit-level POC beyond the public fix diff exists, but reconstruction from the diff is straightforward. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 03, 2026
Heap and CPU exhaustion in Bouncy Castle for Java's OpenPGP implementation allows remote unauthenticated attackers to cause denial of service by crafting OpenPGP messages with extreme Argon2 S2K cost parameters. The library honoured attacker-controlled memory, passes (iterations), and parallelism fields embedded in unauthenticated OpenPGP packets before any message authentication could occur, meaning a single crafted packet could instruct the JVM to allocate up to 2^30 KiB (approximately 1 TiB) of heap. No public exploit code or CISA KEV listing has been identified at time of analysis; however, the vulnerability is straightforward to exploit given that the cost parameters are trivially crafted and processed unconditionally.
RemediationAI
Upgrade to bc-java 1.85 or later, bc-lts-java 2.73.12 or later, or bcpg-fips 1.0.13 (1.0.X), 2.0.13 (2.0.X), or 2.1.13 (2.1.X) as appropriate. The patch is available at https://github.com/bcgit/bc-java/commit/c915cc3f7a8d58f5ea2f88f01dfef2d402dd0799 and the advisory is at https://github.com/bcgit/bc-java/wiki/CVE-2026-59648. As a short-term compensating control prior to patching, set the JVM system property org.bouncycastle.argon2.max_memory_exp to a value suitable for your deployment (e.g., 20 for 1 GiB), and once on the patched version also set org.bouncycastle.argon2.max_passes and org.bouncycastle.argon2.max_parallelism to enforce iteration and lane limits. Note that applying very aggressive caps (e.g., max_memory_exp below 18) may cause legitimate high-security PGP messages using strong Argon2 parameters to be rejected with a PGPException, affecting interoperability. Applications that do not process attacker-supplied OpenPGP passphrase-encrypted messages (i.e., PGP decryption is initiated only with fully trusted, internally-generated ciphertext) have significantly reduced exposure and may treat this as a lower-priority upgrade.
Affected VersionsENISA
Affected Packages
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 for Java (CPE: cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-java, bc-lts-java, bc-fja) implements the OpenPGP standard (RFC 4880bis), which supports Argon2 as a String-to-Key (S2K) mechanism for passphrase-based key derivation. Argon2 is a memory-hard KDF with three tunable cost parameters: memory (in KiB, expressed as 2^exp), passes (iterations), and parallelism (lanes). CWE-770 (Allocation of Resources Without Limits or Throttling) is the root cause: the library's Argon2Parameters class previously defaulted max_memory_exp to 30 (allowing up to 2^30 KiB ≈ 1 TiB), and imposed no cap on passes (up to 255 per the one-byte OpenPGP field) or parallelism (also up to 255). Critically, these fields reside in the unauthenticated portion of an OpenPGP symmetric-key encrypted session packet (SKESK), so the library consumed the attacker-specified parameters before any integrity verification could take place. The fix in commit c915cc3f7a8d58f5ea2f88f01dfef2d402dd0799 lowers the default max_memory_exp to 24 (16 GiB) and introduces configurable ceilings via system properties org.bouncycastle.argon2.max_passes (default 10) and org.bouncycastle.argon2.max_parallelism (default 16); inputs exceeding any active limit now throw a PGPException rather than proceeding.
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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/U:Amber
Network vector with no auth or interaction; A:H because attacker-controlled 1 TiB allocation crashes any typical JVM, contradicting the vendor's VA:L rating.
Primary rating from Vendor (bcorg).
CVSS VectorVendor: bcorg
DescriptionCVE.org
In Bouncy Castle for Java before 1.85, OpenPGP Argon2 S2K honours attacker-chosen memory and passes. This issue also affects Bouncy Castle for Java LTS before 2.73.12, and Bouncy Castle for Java FIPS (BC-FJA) before bcpg-fips 1.0.13 (1.0.X series), 2.0.13 (2.0.X series) and 2.1.13 (2.1.X series).
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Related Vulnerabilities in Bouncy Castle for Java Cryptographic Vulnerabilities
View all 23Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
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
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
Same technique Denial Of Service
View allVendor 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 |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP4 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP5 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP5 | Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP6 | Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Affected |
| SUSE Manager Proxy 4.3 | Affected |
| SUSE Manager Retail Branch Server 4.3 | Affected |
| SUSE Manager Server 4.3 | Affected |
| SUSE Enterprise Storage 7 | Affected |
| SUSE Enterprise Storage 7.1 | Affected |
| SUSE Linux Enterprise Desktop 15 SP2 | Affected |
| SUSE Linux Enterprise Desktop 15 SP3 | Affected |
| SUSE Linux Enterprise Desktop 15 SP4 | Affected |
| SUSE Linux Enterprise Desktop 15 SP5 | Affected |
| SUSE Linux Enterprise Desktop 15 SP6 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP2 | Affected |
| SUSE Linux Enterprise Module for Development Tools 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Affected |
| SUSE Linux Enterprise Server 15 SP2 | Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Affected |
| SUSE Linux Enterprise Server 15 SP3 | Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Affected |
| SUSE Manager Proxy 4.1 | Affected |
| SUSE Manager Proxy 4.2 | Affected |
| SUSE Manager Retail Branch Server 4.1 | Affected |
| SUSE Manager Retail Branch Server 4.2 | Affected |
| SUSE Manager Server 4.1 | Affected |
| SUSE Manager Server 4.2 | Affected |
| openSUSE Leap 15.3 | Affected |
| openSUSE Leap 15.4 | Affected |
| openSUSE Leap 15.5 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-52026
GHSA-p3f8-5jpx-fgqm
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB