Skip to main content

Bouncy Castle Java EUVDEUVD-2026-52025

| CVE-2026-59649 HIGH
Memory Allocation with Excessive Size Value (CWE-789)
2026-08-03 bcorg GHSA-r7h8-35pv-fwgx
8.7
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

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

  1. Access
    Send crafted OpenPGP certificate to parsing endpoint
  2. Delivery
    Supply User Attribute subpacket with ~2 GiB declared body length
  3. Exploit
    UserAttributeSubpacketInputStream reads length and calls new byte[bodyLen - 1]
  4. Execution
    JVM heap exhaustion before any body bytes are read
  5. Persist
    OutOfMemoryError or process crash
  6. Impact
    Service denial of service

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
Exploitation Conditions

The vulnerability fires during OpenPGP certificate parsing in UserAttributeSubpacketInputStream-it is pre-authentication by nature, requiring no credentials or session. No special server configuration or non-default feature flag is required; any application that passes attacker-controlled data to Bouncy Castle's OpenPGP parsing path is vulnerable. The primary real-world prerequisite is that the application exposes an OpenPGP certificate import or processing path reachable from untrusted network input (e.g., a PGP key server lookup, public certificate upload endpoint, or externally submitted signed message handler). Applications that exclusively parse OpenPGP certificates from fully controlled, internal, or trusted-pipeline sources face negligible real-world risk despite the theoretical network vector. Exploitation is limited to availability impact only-no authentication bypass, no data access. The CVSS 4.0 vector (PR:N/UI:N/AV:N/AC:L) confirms no privileges, user interaction, or special attack prerequisites are needed.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H) confirms a remotely exploitable, unauthenticated, low-complexity denial-of-service with high availability impact and no attack requirements. The attack is trivially automatable: a single malformed certificate triggers allocation exhaustion before any authentication check can occur. No EPSS data was provided in the source intelligence; the absence of a KEV listing suggests no confirmed widespread active exploitation at time of analysis. However, Bouncy Castle is one of the most pervasive cryptographic libraries in the Java ecosystem, meaning the downstream exposure surface across application servers, key management services, and PGP-enabled mail infrastructure is very broad. The availability-only impact (VC:N/VI:N/VA:H) means no data exfiltration or tampering is possible, but a successful attack causes JVM heap exhaustion leading to OutOfMemoryError or process termination in any service parsing untrusted OpenPGP certificates. The 'Information Disclosure' tag in the CVE record is inconsistent with the technical impact described in the advisory and commit diff, which show a pure DoS; this tag should not be treated as confirmed. The fix is available and straightforward to apply, keeping remediation cost low.

Exploit ScenarioDerived

An attacker constructs a malicious OpenPGP certificate containing a User Attribute subpacket with a 4-octet length header declaring approximately 2 GiB of body data, then submits it to any service endpoint-such as a PGP key import API, key server query handler, or signed-message verification service-backed by a vulnerable Bouncy Castle version. The JVM allocates a multi-gigabyte byte array before reading any body content, triggering an OutOfMemoryError or JVM process termination. No public proof-of-concept has been confirmed at time of analysis, but the attack structure is directly reconstructable from the public commit diff.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.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

Memory exhaustion in Bouncy Castle for Java's OpenPGP parser enables unauthenticated remote denial of service via a crafted User Attribute subpacket with an oversized length header. All Java applications importing untrusted OpenPGP certificates using bc-java before 1.85, bc-lts-java before 2.73.12, or BC-FJA (FIPS) in affected series are vulnerable to pre-authentication JVM heap exhaustion. No KEV listing or public exploit has been confirmed at time of analysis, but the zero-complexity unauthenticated network attack vector and CVSS 4.0 score of 8.7 signal high operational priority for services that accept OpenPGP certificates from external sources.

RemediationAI

Upgrade to Bouncy Castle for Java 1.85 or later, Bouncy Castle for Java LTS 2.73.12 or later, or the corrected BC-FJA (bcpg-fips) release appropriate to your series: 1.0.13 (1.0.X), 2.0.13 (2.0.X), or 2.1.13 (2.1.X). The upstream patch commit is available at https://github.com/bcgit/bc-java/commit/a43c40dc12c3e1c6cbd03c83fe30aaec4029b824; the fix is a released patched version per vendor advisory, though the exact artifact publication should be confirmed against the Maven Central repository for your specific dependency coordinate. If immediate upgrade is not feasible, implement upstream input size validation that rejects OpenPGP certificates with declared subpacket lengths exceeding 2 MiB before they reach the Bouncy Castle parser-this blocks the allocation trigger but requires a custom parsing wrapper. Alternatively, disable or network-restrict any endpoint that accepts untrusted OpenPGP certificates (key import, certificate upload, PGP signature verification); this eliminates the attack surface entirely but may break OpenPGP key management features. The vendor advisory is at https://github.com/bcgit/bc-java/wiki/CVE-2026-59649.

Affected VersionsENISA

BC-JAVA 0 <1.85
BC-LTS-JAVA 2.73.0 <2.73.12
BC-FJA 2.0.0 <2.0.13
BC-FJA 2.1.0 <2.1.13
BC-FJA 1.0.0 <1.0.13

Affected Packages

euvd bc_fja fix: 1.0.13, 2.0.13, 2.1.13
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

CWE-789 (Uncontrolled Memory Allocation) in the OpenPGP packet parsing component (bcpg) of Bouncy Castle for Java. The vulnerable class UserAttributeSubpacketInputStream reads the declared body length from the wire header and immediately executes new byte[bodyLen - 1] to allocate a buffer. The only guard was StreamUtil.findLimit(), which for BCPGInputStream-the stream type used during packet parsing-returns a value near the JVM heap ceiling rather than the bytes actually available on the wire. A packet header declaring ~2 GiB of body data therefore forces a multi-gigabyte heap allocation before a single body byte is consumed. The fix introduces MAX_SUBPACKET_LEN = 2 * 1024 * 1024 (2 MiB), enforced in UserAttributeSubpacketInputStream independently of the findLimit() hint, matching the caps already applied to SignaturePacket.MAX_SUBPACKET_LEN and PublicKeyPacket.MAX_LEN. The advisory explicitly identifies this as the structural sibling of CVE-2026-3505 (signature subpackets). Affected CPEs cover all three distribution lines: cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-java:*, bc-lts-java:*, and 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 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/U:Amber
vuln.today AI 7.5 HIGH

Network-reachable pre-auth parse path, no privileges or interaction required; impact is heap exhaustion (availability only) with no confidentiality or integrity effect.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/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
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

In Bouncy Castle for Java before 1.85, OpenPGP user-attribute subpacket length bounded only by JVM max memory. 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).

Executive ViewAI

Why It Matters

Bouncy Castle for Java versions before 1.85 and 2.73.12 contain a remote denial-of-service vulnerability in their OpenPGP parser that allows attackers to crash Java applications by sending maliciously crafted certificates without authentication. Any organization deploying Java applications that process OpenPGP certificates from external sources-including email systems, secure messaging platforms, and certificate management tools-faces immediate application availability risk from network-accessible attackers.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
High
widely used cryptographic library across Java enterprise ecosystem
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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

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