{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-110974",
        "assignerOrgId": "9e0f3122-90e9-42d5-93de-8c6b98deef7e",
        "state": "PUBLISHED",
        "assignerShortName": "Vaadin",
        "dateReserved": "2026-10-15T10:33:10.036Z",
        "datePublished": "2026-10-22T08:52:27.149Z",
        "dateUpdated": "2026-10-22T08:52:27.149Z"
    },
    "containers": {
        "cna": {
            "affected": [
                {
                    "collectionURL": "https://repo.maven.apache.org/maven2",
                    "defaultStatus": "unaffected",
                    "packageName": "com.vaadin.external.google:android-json",
                    "product": "android-json",
                    "vendor": "vaadin",
                    "versions": [
                        {
                            "lessThanOrEqual": "0.0.20131108.vaadin1",
                            "status": "affected",
                            "version": "0",
                            "versionType": "maven"
                        }
                    ]
                }
            ],
            "credits": [
                {
                    "lang": "en",
                    "type": "finder",
                    "value": "刘春燕 (Liu Chunyan), Fudan University"
                }
            ],
            "descriptions": [
                {
                    "lang": "en",
                    "supportingMedia": [
                        {
                            "base64": false,
                            "type": "text/html",
                            "value": "<span style=\"background-color: rgba(232, 232, 232, 0.04);\">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.<br><br><br>Users of the affected version should apply the following mitigation.<br><br>Product version<br>com.vaadin.external.google:android-json 0.0.20131108.vaadin1<br><br>Mitigation<br>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.<br><br>Artifacts<table><tbody><tr><td>Maven coordinates</td><td>Vulnerable versions</td><td>Fixed version</td></tr><tr><td>com.vaadin.external.google:android-json<br></td><td>0.0.20131108.vaadin1<br></td><td>none<br></td></tr></tbody></table></span>"
                        }
                    ],
                    "value": "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.\n\n\nUsers of the affected version should apply the following mitigation.\n\nProduct version\ncom.vaadin.external.google:android-json 0.0.20131108.vaadin1\n\nMitigation\nNo 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.\n\nArtifacts\nMaven coordinates / Vulnerable versions / Fixed version\ncom.vaadin.external.google:android-json / 0.0.20131108.vaadin1 / none"
                }
            ],
            "impacts": [
                {
                    "capecId": "CAPEC-230",
                    "descriptions": [
                        {
                            "lang": "en",
                            "value": "CAPEC-230 Serialized Data with Nested Payloads"
                        }
                    ]
                }
            ],
            "metrics": [
                {
                    "cvssV4_0": {
                        "attackComplexity": "LOW",
                        "attackRequirements": "PRESENT",
                        "attackVector": "NETWORK",
                        "baseScore": 6.3,
                        "baseSeverity": "MEDIUM",
                        "privilegesRequired": "NONE",
                        "subAvailabilityImpact": "NONE",
                        "subConfidentialityImpact": "NONE",
                        "subIntegrityImpact": "NONE",
                        "userInteraction": "NONE",
                        "vectorString": "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",
                        "version": "4.0",
                        "vulnAvailabilityImpact": "LOW",
                        "vulnConfidentialityImpact": "NONE",
                        "vulnIntegrityImpact": "NONE"
                    },
                    "format": "CVSS",
                    "scenarios": [
                        {
                            "lang": "en",
                            "value": "GENERAL"
                        }
                    ]
                }
            ],
            "problemTypes": [
                {
                    "descriptions": [
                        {
                            "cweId": "CWE-674",
                            "description": "CWE-674 Uncontrolled Recursion",
                            "lang": "en",
                            "type": "CWE"
                        }
                    ]
                }
            ],
            "providerMetadata": {
                "orgId": "9e0f3122-90e9-42d5-93de-8c6b98deef7e",
                "shortName": "Vaadin",
                "dateUpdated": "2026-10-22T08:52:27.149Z"
            },
            "references": [
                {
                    "url": "https://repo.maven.apache.org/maven2/com/vaadin/external/google/android-json/0.0.20131108.vaadin1/"
                }
            ],
            "solutions": [
                {
                    "lang": "en",
                    "supportingMedia": [
                        {
                            "base64": false,
                            "type": "text/html",
                            "value": "<b><span style=\"background-color: transparent;\">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.</span></b><br>"
                        }
                    ],
                    "value": "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."
                }
            ],
            "source": {
                "discovery": "EXTERNAL"
            },
            "title": "Uncontrolled Recursion on Nested JSON Allows Denial of Service in android-json",
            "workarounds": [
                {
                    "lang": "en",
                    "value": "Exclude com.vaadin.external.google:android-json and depend on an org.json implementation that limits the nesting depth."
                }
            ],
            "x_generator": {
                "engine": "Vulnogram 0.5.0"
            }
        }
    }
}