Skip to main content

Bouncy Castle Java CVE-2026-59640

| EUVDEUVD-2026-52034 HIGH
Observable Discrepancy (CWE-203)
2026-08-03 bcorg GHSA-w983-hf44-gcww
8.7
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

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

  1. Access
    Locate network-accessible OpenPGP decryption endpoint
  2. Delivery
    Capture or synthesize target SEIPD v1 ciphertext
  3. Exploit
    Submit adaptively crafted ciphertexts to trigger quick-check oracle
  4. Execution
    Distinguish early PGPDataValidationException from MDC failure response
  5. Persist
    Iteratively recover plaintext bytes via Mister-Zuccherato technique
  6. Impact
    Exfiltrate decrypted message content

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V6 - Authentication Timing-safe comparisons
Exploitation Conditions

Exploitation requires the target application to use Bouncy Castle's OpenPGP high-level API on the session-key/PKESK decryption path (specifically PGPSessionKeyEncryptedData or equivalent code reaching the unpatched processSymmetricEncIntegrityPacketDataStream() in the affected versions) against SEIPD v1 formatted data. The attacker must be able to submit arbitrary crafted ciphertexts to the decryption service and observe a distinguishable difference between early failure (CFB quick-check exception before MDC) and late or absent failure - making error response visibility a critical prerequisite. Applications using only password-based (PBE/SKESK) OpenPGP decryption are not vulnerable to this suppression gap, as the quick check is intentionally retained and correct on that path. Applications that have already migrated to SEIPD v2 (which lacks the legacy CFB quick-check mechanism entirely) are also not affected. The CVSS 4.0 vector PR:N indicates no authentication is required to submit ciphertexts, provided the decryption endpoint is network-accessible.

Impact

The vendor-assigned CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H) reflects a network-accessible, unauthenticated path to high confidentiality impact, which is accurate for the general exposure model but arguably overstates attack simplicity. The Mister-Zuccherato oracle attack is an adaptive-chosen-ciphertext technique requiring the adversary to submit many crafted ciphertexts to a reachable decryption service and distinguish early-failure (quick-check exception) from late-failure (MDC error) responses - this is meaningfully more complex than a trivial network exploit, and independent analysis supports AC:H. Exploitation is bounded to applications using the SEIPD v1 session-key/PKESK decryption path and exposing error distinguishability to callers. No CISA KEV listing and no public POC are known, and EPSS data was not provided in the input. The U:Amber urgency tag in the CVSS 4.0 vector signals elevated but not immediate concern. The primary risk is to applications that expose OpenPGP decryption as a network service and return granular error responses - environments using SEIPD v2 or PBE-only decryption are unaffected.

Exploit ScenarioDerived

An attacker identifies a network-accessible Java service using Bouncy Castle's OpenPGP high-level API to decrypt PKESK-encrypted messages and submits a series of adaptively crafted SEIPD v1 ciphertexts, observing whether the service returns a quick-check exception (PGPDataValidationException before MDC) versus an MDC integrity failure. By iteratively refining chosen ciphertexts based on oracle responses - consistent with the Mister-Zuccherato technique - the attacker extracts plaintext bytes from intercepted legitimate encrypted messages. No public POC has been identified at time of analysis, but the attack method is documented in peer-reviewed cryptographic literature.

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

Bouncy Castle for Java's OpenPGP session-key decryption path re-exposes the Mister-Zuccherato adaptive-chosen-ciphertext oracle by failing to suppress the legacy CFB 'quick check' on the PKESK/session-key route, enabling an attacker with decryption oracle access to recover plaintext from SEIPD v1 encrypted messages. Affected are bc-java before 1.85, bc-lts-java before 2.73.12, and BC-FJA (bcpg-fips) across the 1.0.X, 2.0.X, and 2.1.X series - three distinct product lines used broadly in enterprise and open-source Java applications. No public exploit or CISA KEV listing has been identified at time of analysis; however, the attack technique is well-established in cryptographic literature dating to the Mister-Zuccherato paper.

RemediationAI

Upgrade to Bouncy Castle for Java 1.85 or later, Bouncy Castle LTS 2.73.12 or later, or BC-FJA bcpg-fips 1.0.13/2.0.13/2.1.13 (matching your installed 1.0.X/2.0.X/2.1.X series). The patch commit is at https://github.com/bcgit/bc-java/commit/6b94b1c146cec1f565d9a85847fae511af77503e and the vendor advisory is at https://github.com/bcgit/bc-java/wiki/CVE-2026-59640. Patch availability is confirmed by vendor advisory; exact released artifact versions should be verified against Maven Central or the Bouncy Castle distribution before deployment. If immediate patching is not feasible, restrict network access to services that perform OpenPGP session-key decryption and ensure those services do not return distinguishable error responses to callers (e.g., normalize error output to a single opaque failure type) - this eliminates the attacker's ability to use the oracle without disabling decryption functionality, though it may hinder legitimate error handling.

Affected VersionsENISA

BC-FJA 1.0.0 <1.0.13
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-JAVA 0 <1.85

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

The vulnerability resides in Bouncy Castle's pg module (PGPEncryptedData.processSymmetricEncIntegrityPacketDataStream()) within the OpenPGP implementation. OpenPGP CFB mode historically included a 'quick check' that verified two repeated prefix bytes immediately after stream initialization, producing a distinguishable error (PGPDataValidationException) before the MDC integrity tag was evaluated - a classic CWE-203 observable discrepancy exploitable as an adaptive-chosen-ciphertext oracle. Bouncy Castle's PGPPublicKeyEncryptedData had previously suppressed this quick check to block the Mister-Zuccherato oracle, but the session-key path - PGPSessionKeyEncryptedData, reached after PKESK unwrapping by the high-level OpenPGP API - retained the check, inadvertently re-opening the oracle. The fix passes a publicKeyEncrypted flag into the stream processor and conditionally skips the quick check for public-key and session-key paths, while preserving it on the password-based (PBE/SKESK) path where detecting a wrong passphrase drives multi-SKESK retry logic. CPE strings confirm three distinct product lines: bc-java, bc-lts-java, and bc-fja (FIPS-certified variant).

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:H/VI:N/VA:N/SC:N/SI:N/SA:N/U:Amber
vuln.today AI 5.9 MEDIUM

Adaptive chosen-ciphertext oracle requires many crafted submissions and distinguishable error visibility, warranting AC:H; no authentication needed to reach an exposed decryption service.

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

DescriptionCVE.org

In Bouncy Castle for Java before 1.85, OpenPGP CFB quick-check oracle active on symmetric/session-key paths. 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 (bc-java, bc-lts-java, and BC-FJA/bcpg-fips, widely used across enterprise Java environments) contains a cryptographic oracle vulnerability in OpenPGP message decryption that could enable plaintext recovery from encrypted messages. No public exploit has been identified at time of analysis, but the underlying attack technique is established in academic literature. Immediate patching of all affected versions is required to protect the confidentiality of encrypted communications.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 82% exploitable
Prevalence
High
widely-used Java cryptography library across enterprise, OSS, and FIPS environments
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