Skip to main content

Vaadin android-json EUVDEUVD-2026-108079

| CVE-2026-110974 MEDIUM
Uncontrolled Recursion (CWE-674)
2026-10-22 security@vaadin.com GHSA-mpj5-6q3h-p6x6
6.3
CVSS 4.0 · Vendor: vaadin
View

Attack ChainAIDerived

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

  1. Access
    Reach JSON parsing endpoint
  2. Exploit
    Submit deeply nested JSON (~20 KB arrays)
  3. Execution
    Recursion exhausts thread stack
  4. Impact
    Uncaught 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – 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

android-json 0 ≤0.0.20131108.vaadin1

Affected Packages

euvd android_json no fix

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

Vendor (vaadin) PRIMARY 6.3 MEDIUM
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
vuln.today AI 5.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (vaadin).

CVSS VectorVendor: vaadin

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

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

EPSS Score
0.3%
Top 84% exploitable
Prevalence
Medium
common transitive Java JSON library, often test-scope or on non-untrusted paths
Social Media
1
Sightings
Data Quality
4 sources
Confidence: Medium

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 MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.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· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

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

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

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