Skip to main content

Bouncy Castle Java EUVDEUVD-2026-52133

| CVE-2026-12802 HIGH
Improper Validation of Integrity Check Value (CWE-354)
2026-08-03 bcorg GHSA-833g-4xxm-r9cx
8.7
CVSS 4.0 · Vendor: bcorg
View

Attack ChainAIDerived

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

  1. Access
    Obtain target recipient's public key or certificate
  2. Delivery
    Craft CMS AuthEnvelopedData with downgraded 32-bit AES-GCM tag
  3. Exploit
    Deliver crafted message to vulnerable application endpoint
  4. Execution
    Bouncy Castle decrypts without enforcing minimum tag length
  5. Persist
    Brute-force AEAD tag collision with ~2^32 attempts
  6. Impact
    Forge authenticated ciphertext accepted as genuine

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A08:2025 - Software or Data Integrity Failures
ASVS 5.0
V15 - Secure Coding and Architecture Integrity verification
Exploitation Conditions

The application must use Bouncy Castle's CMS AuthEnvelopedData decryption path - specifically, one of the JCE recipient types (JceKeyTransRecipient, JceKeyAgreeRecipient, JceKEMRecipient, JcePasswordRecipient, or JceKEKRecipient) - and must process CMS messages received from an attacker-controlled or attacker-influenceable source. The attacker must be able to deliver a crafted CMS AuthEnvelopedData message to the application and must have access to the target recipient's public key material (certificate or public key) to construct a valid key-wrapping layer. Applications that only generate CMS messages (encrypt/sign only) or that process only CMS SignedData or EnvelopedData (non-authenticated) are not affected. Applications consuming CMS payloads exclusively from fully trusted internal sources face minimal real-world risk. The CVSS vector PR:N indicates no authenticated session to the target service is required; the attacker needs only the ability to submit a CMS payload. Applications that have already explicitly set the org.bouncycastle.gcm.allow_short_tags=false system property prior to this patch may have partial protection depending on library version.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N) signals high integrity impact with no authentication, no complexity barrier, and no user interaction required - a strong paper score. However, real-world exploitation requires an attacker to both craft a validly-structured CMS AuthEnvelopedData message (including correct key wrapping for the target recipient's key material) and deliver it to an application that processes such messages. This narrows the realistic attack surface to applications that actively receive and decrypt CMS AuthEnvelopedData payloads from untrusted or semi-trusted sources, such as secure messaging gateways, document exchange platforms, or PKCS#7-based workflows. There is no CISA KEV entry and no public POC, which tempers urgency relative to the raw score. EPSS data was not provided; exploitation is assessed as technically non-trivial but theoretically sound. A critical nuance: the upstream fix does NOT harden existing code by default - upgrading the library alone leaves applications vulnerable unless they also adopt the new setMinimumTagSize() API, meaning remediation requires both a library update and application-level code changes.

Exploit ScenarioDerived

An attacker targeting a Java-based secure document exchange platform that accepts inbound CMS AuthEnvelopedData payloads crafts a malicious message encrypted for the target recipient's public key but specifying a 32-bit AES-GCM ICV in the AlgorithmIdentifier. The vulnerable Bouncy Castle recipient decrypts the message without validating the tag length, accepting the weakened authentication guarantee. With a 32-bit tag, the attacker can attempt ~4 billion forgeries to produce an ICV collision and deliver content that the application treats as authentically encrypted and unmodified. No public exploit code has been identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Aug 03, 2026

CMS AuthEnvelopedData decryption in Bouncy Castle for Java fails to enforce a minimum AEAD authentication tag length, allowing a network attacker to supply a crafted CMS message carrying a truncated AES-GCM/CCM ICV (e.g., 32 bits instead of the standard 128 bits), effectively reducing the authentication space to the point where tag forgery becomes computationally feasible. Affected are bc-java before 1.85, bc-lts-java before 2.73.12, and all bc-fja (FIPS) 1.0.x/2.0.x/2.1.x series before their respective .12 patch releases. No public exploit or CISA KEV listing has been identified at time of analysis, but the CVSS 4.0 score of 8.7 with VI:H reflects the high integrity impact of bypassing authenticated encryption guarantees.

RemediationAI

Upgrade to Bouncy Castle for Java 1.85 or later, bc-lts-java 2.73.12 or later, or the appropriate FIPS patch release (bcpkix-fips 1.0.12, 2.0.12, or 2.1.12 depending on the series in use), as detailed in the vendor advisory at https://github.com/bcgit/bc-java/wiki/CVE-2026-12802. Critically, upgrading the library alone does NOT change default behavior - the new checkTagSize() enforcement is opt-in. After upgrading, all JCE recipient instances (JceKeyTransRecipient, JceKeyAgreeRecipient, JceKEMRecipient, JcePasswordRecipient, JceKEKRecipient) must have setMinimumTagSize(128) called (or the minimum tag size appropriate to your threat model) to refuse messages with downgraded ICV lengths before any decryption occurs; omitting this call leaves the vulnerability exploitable even on the patched library version. As a compensating control prior to patching, applications can set the existing JVM system property org.bouncycastle.gcm.allow_short_tags=false if supported in their library version, or implement application-layer validation to reject CMS messages whose AES-GCM/CCM AlgorithmIdentifier specifies a tag shorter than 128 bits before passing them to Bouncy Castle. The patch commit is available at https://github.com/bcgit/bc-java/commit/0fefa539e6ac5c66e1daee5a13b23d1d4769cc01.

Affected VersionsENISA

BC-JAVA 0 <1.85
BC-LTS-JAVA 2.73.0 <2.73.12
BC-FJA 1.0.0 <1.0.12
BC-FJA 2.0.0 <2.0.12
BC-FJA 2.1.0 <2.1.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

Bouncy Castle is a foundational Java cryptography provider implementing JCA/JCE and FIPS-certified variants (BC-FJA). The affected code path is the CMS (Cryptographic Message Syntax, RFC 5652/5083) AuthEnvelopedData processing layer, specifically the recipient implementations (JceKeyTransRecipient, JceKeyAgreeRecipient, JceKEMRecipient, JcePasswordRecipient, JceKEKRecipient) in the pkix module. AES-GCM and AES-CCM are AEAD ciphers that produce an Integrity Check Value (ICV/tag) appended to the ciphertext; the tag length is encoded in the AlgorithmIdentifier parameters of the CMS content-encryption algorithm. CWE-354 (Improper Validation of Integrity Check Value) applies because AbstractRecipient.checkTagSize() did not exist prior to this fix - the library read and used the tag length from the incoming message without verifying it met any minimum threshold. This is a classic tag-length downgrade vector: an attacker specifying a 32-bit tag reduces the forgery search space from 2^128 to 2^32 (~4 billion), making brute-force or birthday attacks practical. CPE identifiers cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-java, bc-lts-java, and bc-fja cover all three library lines.

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

Network-delivered CMS payload requires no authentication or user interaction; no confidentiality or availability impact, only integrity via AEAD tag downgrade.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
SUSE 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
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
High
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, CMS AuthEnvelopedData fails to enforce tag-length on decryption. 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).

Executive ViewAI

Why It Matters

Bouncy Castle for Java, a cryptographic library deployed in countless enterprise applications, contains a vulnerability in authenticated encryption that allows attackers to forge authentication tags on encrypted messages. Organizations relying on affected versions to protect sensitive data in transit or at rest face a direct risk of undetected message tampering and loss of integrity guarantees. Immediate patching is required to prevent exploitation as the authentication bypass becomes computationally feasible with truncated authentication codes.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 93% exploitable
Prevalence
High
core Java crypto library used across enterprise, Android, and cloud ecosystems
Data Quality
8 sources
Confidence: High
EUVD 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.2%
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: Important
Product Status
openSUSE Leap 16.0 Fixed
openSUSE Tumbleweed Fixed
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS Affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS Affected
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS Affected

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