Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach JSON parsing endpoint
-
ExploitSubmit deeply nested JSON (~20 KB arrays)
-
ExecutionRecursion exhausts thread stack
-
ImpactUncaught StackOverflowError kills parsing thread
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Recursion depth limits
|
| Exploitation Conditions | The application must parse attacker-controlled (untrusted) JSON using com.vaadin.external.google:android-json 0.0.20131108.vaadin1, and the parsing thread must run with the default (limited) stack size - the advisory states roughly 20 KB of nested arrays suffices under the default thread stack. The flaw is that the JSONArray/JSONObject constructors throw a raw java.lang.StackOverflowError rather than a JSONException, so ordinary try/catch(JSONException) handling does not contain it. Limiting factors: no authentication is required (PR:N) and the trigger is simple (AC:L), but reachability depends on the application actually exposing an untrusted-JSON parse path through this specific artifact; impact is bounded to availability of the parsing thread (VA:L, no confidentiality/integrity effect), and larger thread stacks raise the nesting depth required. |
| Impact | This is a denial-of-service via unbounded recursion (CWE-674): parsing a deeply nested JSON document (~20 KB of nested arrays with the default thread stack) makes JSONTokener.nextValue()/readArray()/readObject() recurse until the JSONArray/JSONObject constructor throws a raw java.lang.StackOverflowError instead of a catchable JSONException, killing the thread doing the parse. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) scores 6.3 and confines impact to availability only (VC:N/VI:N/VA:L, SC/SI/SA:N) - no confidentiality, integrity, or code execution. No EPSS score, no CISA KEV listing, and no PoC/exploit reference are present in the input; by the precision rule this is 'no public exploit identified at time of analysis.' The vuln.today decision label is this_month - a near-term patch priority, not act_now/emergency. Realistically this is a moderate, not critical, issue: the technical ceiling is a crashed parsing thread, and exploitation is only reachable where the application feeds untrusted JSON through this specific library. The AT:P flag reflects a genuine dependency on the (default, limited) thread stack size rather than attacker-uncontrolled timing - the trigger itself (send nested JSON) is simple and attacker-controlled. The most significant operational fact is that no fix will ever ship: the artifact is a 2013 repackage published once and never maintained, so remediation is replacement, not patching. |
| Exploit ScenarioDerived | An application exposes an endpoint or message path that parses attacker-supplied JSON using com.vaadin.external.google:android-json. The attacker submits a ~20 KB document of deeply nested arrays; the recursive parser exhausts the thread's stack and throws an uncaught StackOverflowError, failing the parsing thread. No public exploit code is identified in the input, though the trigger is trivial to construct. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 22, 2026
Denial of service in com.vaadin.external.google:android-json 0.0.20131108.vaadin1 allows any application that parses untrusted JSON with this artifact to be forced to abort the parsing thread: a roughly 20 KB document of nested arrays drives unbounded recursion until a raw java.lang.StackOverflowError is thrown instead of a catchable JSONException. The flaw is unauthenticated per the CVSS vector (PR:N) and trivial to trigger (AC:L), though it only matters where the application actually routes untrusted JSON through this specific repackaged library; impact is limited to availability of the parsing thread, with no confidentiality or integrity effect. The artifact is a 2013 repackage of third-party org.json classes that is published once and unmaintained, and the maintainer states no fixed version will ever be released, so remediation means replacing the dependency. No public exploit code and no CISA KEV entry were identified at time of analysis; priority per the decision signal is this month, and the risk is bounded because larger thread stacks raise the nesting depth required to trigger the overflow.
RemediationAI
No vendor-released patch exists for this artifact and none will be issued: the only complete fix is to remove com.vaadin.external.google:android-json 0.0.20131108.vaadin1 from the dependency tree and replace it with an org.json implementation that enforces a nesting-depth limit, such as org.json:json 20231013 or later, as the maintainer directs. Practically this means locating the declaration in the build (direct dependency or an exclusion/override in the dependency management for whatever pulls it in transitively) and substituting the coordinates, then re-verifying that no lingering transitive path reintroduces the old artifact. Where the library cannot be swapped immediately, the compensating controls are partial: running the JSON parsing on threads configured with a larger stack size raises the nesting depth an attacker must supply before the StackOverflowError occurs, at the cost of more memory per thread and no true elimination of the flaw; wrapping parse calls to also catch java.lang.Throwable or java.lang.StackOverflowError prevents the raw error from escaping into request-handling code, though recovering from a StackOverflowError is unreliable and does not protect the thread from being disrupted. Neither workaround removes the underlying unbounded recursion, so dependency replacement remains the required action.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The artifact com.vaadin.external.google:android-json is a 2013 repackage of Google's android-json (itself a fork of org.json) published under the Vaadin namespace, containing classes such as JSONTokener, JSONArray and JSONObject. The parser is recursive-descent with no depth limit: JSONTokener.nextValue() dispatches to readArray() and readObject(), each of which calls back into nextValue() for every nested element. Because recursion depth tracks document nesting, a small payload (~20 KB of nested arrays) exhausts the default thread stack, and the resulting java.lang.StackOverflowError is an Error rather than a JSONException, so the conventional try/catch(JSONException) handling around a parse call does not contain it and the parsing thread dies. This maps to CWE-674 (Uncontrolled Recursion). Reachability is conditional: the application must expose a path where attacker-supplied JSON is parsed by this artifact, and the parsing thread must run with a limited/default stack size - the trigger itself is not described beyond the nesting-depth recursion, and the required depth scales with the stack size configured for the thread. Larger stacks do not eliminate the flaw, only raise the nesting threshold at which it manifests.
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:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Remotely supplied JSON (AV:N) triggers the crash trivially (AC:L) with no auth or interaction (PR:N/UI:N); impact is partial availability of the parsing thread only (A:L), no C/I.
Primary rating from Vendor (vaadin).
CVSS VectorVendor: vaadin
DescriptionCVE.org
The org.json parser in com.vaadin.external.google:android-json recurses once per nesting level with no depth limit: JSONTokener.nextValue() calls readArray() and readObject(), which call nextValue() again. A deeply nested JSON document, around 20 KB of nested arrays with the default thread stack, makes the JSONArray and JSONObject constructors throw a raw java.lang.StackOverflowError instead of a JSONException. Any application that parses untrusted JSON with this library can be made to fail the thread doing the parsing. The artifact is a 2013 repackage of third-party org.json classes, published once and never maintained, and no fixed version will be released.
Users of the affected version should apply the following mitigation.
Product version com.vaadin.external.google:android-json 0.0.20131108.vaadin1
Mitigation No fixed version will be released. Replace the artifact with an org.json implementation that limits the nesting depth, such as org.json:json 20231013 or later.
Artifacts Maven coordinates / Vulnerable versions / Fixed version com.vaadin.external.google:android-json / 0.0.20131108.vaadin1 / none
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
Oracle 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
EUVD-2026-108079
GHSA-mpj5-6q3h-p6x6
NVD
CVE.org
EPSS
Exploit-DB