Skip to main content

Bouncy Castle Java EUVDEUVD-2026-52139

| CVE-2026-13506 HIGH
Uncontrolled Recursion (CWE-674)
2026-08-03 bcorg GHSA-qp49-qgx5-5m26
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 ASN.1 with 256+ nested SEQUENCEs
  2. Delivery
    Target accepts input for lazy parse
  3. Exploit
    Shallow outer parse passes depth guard
  4. Execution
    Application triggers full tree traversal
  5. Persist
    Depth guard resets on each LazyEncodedSequence.force()
  6. Impact
    StackOverflowError crashes parsing thread

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
Exploitation Conditions

Exploitation requires that the application uses Bouncy Castle in lazy ASN.1 parsing mode (ASN1InputStream instantiated with lazyEvaluate=true) and subsequently performs a full tree traversal of the parsed object - such as calling hashCode(), equals(), re-encoding, or iterating via getObjects(). This lazy mode is commonly used internally by Bouncy Castle when processing large ASN.1 structures for performance. The crafted input must contain more nested SEQUENCE levels than the configured depth limit (default 64) to trigger the guard bypass. Applications that parse ASN.1 eagerly (lazyEvaluate=false) are not vulnerable to this specific flaw. No authentication is required when the affected ASN.1 parsing endpoint is network-facing (e.g., TLS certificate processing, CMS verification APIs). Exploitation is limited to availability impact - a StackOverflowError - with no confidentiality or integrity consequence confirmed.

Impact

The CVSS 4.0 score of 8.7 (AV:N/AC:L/AT:N/PR:N/UI:N/VA:H) accurately reflects a low-complexity, unauthenticated, network-reachable denial-of-service with no confidentiality or integrity component. Real-world risk is moderate-to-high for applications that process untrusted ASN.1 data - TLS handshake certificate chains, OCSP responses, signed CMS/PKCS#7 messages, or any protocol that submits ASN.1 to Bouncy Castle - because the attack requires no special authentication and the input vector is commonly exposed at network boundaries. Applications that pass only internally generated ASN.1 to Bouncy Castle have substantially reduced exposure. The 'Information Disclosure' tag present in the source metadata is inconsistent with the CVSS vector (VC:N/VI:N/VA:H) and appears to be a tagging error; no confidentiality impact is indicated by the authoritative CVSS assessment. No EPSS score was supplied and CISA KEV status is unconfirmed, so exploitation likelihood must be inferred from the vulnerability class: ASN.1 parsing DoS flaws in widely deployed cryptographic libraries have historically attracted exploit development.

Exploit ScenarioDerived

An attacker submits a crafted X.509 certificate or CMS-signed message containing 256 or more nested SEQUENCE elements to a server that uses Bouncy Castle for TLS certificate validation or signature verification. The initial lazy parse at the network layer succeeds because only the outermost level is decoded eagerly. When the application subsequently validates the certificate chain or computes a signature, Bouncy Castle traverses the full ASN.1 tree, and each LazyEncodedSequence.force() call resets the depth guard, recursing deeper until a StackOverflowError crashes the certificate-processing thread or the entire JVM process. The vendor's regression test (testHeavilyLazyNestedSequence in ASN1SequenceParserTest.java) demonstrates that 256 levels of nesting reliably reproduces the condition.

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

Uncontrolled recursion in Bouncy Castle for Java's lazy ASN.1 parser enables remote unauthenticated denial of service across all three library release lines (bc-java, bc-lts-java, and bc-fja FIPS). When a LazyEncodedSequence is forced during tree traversal, it resets the nesting-depth guard to its configured maximum instead of continuing with the remaining depth budget, allowing crafted deeply-nested ASN.1 structures to bypass StreamUtil's recursion limit and trigger a StackOverflowError. No public exploit has been identified at time of analysis, but any Java application accepting externally-supplied ASN.1 data - TLS certificates, CMS signatures, PKCS structures - is potentially exposed without authentication.

RemediationAI

Upgrade to the patched releases as appropriate for your dependency: bc-java 1.85 or later, bc-lts-java 2.73.12 or later, or 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 upstream fix is confirmed in commit https://github.com/bcgit/bc-java/commit/77454da9b3dcaaa2991412d1c3c1a6e1a338ff84 and the vendor advisory is at https://github.com/bcgit/bc-java/wiki/CVE-2026-13506. For environments where an immediate upgrade is not feasible, a compensating control is to enforce a maximum ASN.1 nesting depth and structure size at the application boundary before passing data to Bouncy Castle - rejecting any DER/BER input exceeding a configurable depth threshold (e.g., 32 levels). This adds marginal parsing overhead and may reject unusual but legitimate deeply nested structures; operators should tune the limit against their actual use case. If the application instantiates ASN1InputStream directly with lazyEvaluate=true, switching to eager parsing (lazyEvaluate=false) eliminates this specific code path but may reduce performance for large ASN.1 structures.

Affected VersionsENISA

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

Affected Packages

maven org.bouncycastle:bc-fips fix: 1.0.2.7, 2.0.2, 2.1.3
maven org.bouncycastle:bcprov-jdk15to18 fix: 1.85
maven org.bouncycastle:bcprov-jdk18on fix: 1.85
maven org.bouncycastle:bcprov-lts8on fix: 2.73.12
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 7 packages in maven, 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 the ASN.1 parsing subsystem of the Bouncy Castle Java cryptography library, specifically across ASN1InputStream, LazyEncodedSequence, and LazyConstructionEnumeration (CPEs: cpe:2.3:a:legion_of_the_bouncy_castle_inc.:bc-java, bc-lts-java, bc-fja). CWE-674 (Uncontrolled Recursion) precisely characterizes the root cause: in lazy parsing mode, Bouncy Castle defers full SEQUENCE deserialization until the structure is accessed ('forced'). The defect is that LazyEncodedSequence.force() and getObjects() previously instantiated a new ASN1InputStream with the depth counter reset to the library's global maximum (typically 64) rather than propagating the remaining depth budget from the parent parse context. An attacker can craft a structure with, for example, 256 nested SEQUENCEs - passing the shallow outer parse - then trigger a full tree walk (via hashCode(), equals(), re-encoding, or explicit force()), causing each lazy materialization to reset the counter and allow arbitrarily deep recursion until JVM stack exhaustion. The fix (bcgit/bc-java@77454da) threads a contentsDepth field through LazyEncodedSequence into LazyConstructionEnumeration and ASN1InputStream so the depth budget is continuously decremented across all lazy force() calls, matching the behavior of the eager parse path.

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 DoS via crafted ASN.1 requires no authentication or interaction; impact is availability-only with scope unchanged.

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 7.5 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
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, Lazy ASN.1 sequence forcing resets nesting-depth guard. 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).

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 16 maven packages depend on org.bouncycastle:bc-fips (6 direct, 10 indirect)
  • 13 maven packages depend on org.bouncycastle:bcprov-jdk15to18 (3 direct, 10 indirect)
  • 5,434 maven packages depend on org.bouncycastle:bcprov-jdk18on (559 direct, 4,900 indirect)
  • 52 maven packages depend on org.bouncycastle:bcprov-lts8on (9 direct, 46 indirect)

Ecosystem-wide dependent count for version 2.0.0 and other introduced versions.

Executive ViewAI

Why It Matters

Bouncy Castle for Java contains a remote denial-of-service vulnerability affecting all three active release lines (bc-java, bc-lts-java, bc-fja FIPS) that can be exploited without authentication to crash systems processing cryptographic structures. Organizations using Bouncy Castle for TLS, certificate validation, or digital signature verification face immediate risks to service availability and operational continuity. The vulnerability requires no special privileges or user interaction, making it exploitable from any network-facing endpoint that processes untrusted ASN.1 data.

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, Android, and FIPS environments
Threat Intel
1
1 source
Data Quality
8 sources
Confidence: High
EUVD 🇯🇵JVN NVD CVE.org EPSS Vulnrichment GHSA 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: 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