CVE-2023-5072: disallow nested object/array keys & detect embedded \0 #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Port stleary/JSON-java fixes for CVE-2023-5072 to mitigate recursion issues when creating JSONObjects.
getSimpleValue
tokenizer method that does not support objects or arraysThe latter requires us to port over a more modern implementation of
JSONTokener.next(int n)
(https://github.com/stleary/JSON-java/blob/master/src/main/java/org/json/JSONTokener.java#L248) so we can check individual characters instead of reading an n-character buffer all at once.Tested by:
//thirdparty:json
. Confirm all test failures match the main branchSee also:
\0
and EOF can lead to OutOfMemoryError stleary/JSON-java#758\0
values stleary/JSON-java#759