---
id: "CVE-2026-59171"
page: "https://infrastack.ai/live/CVE-2026-59171"
kind: "vulnerability"
aliases: ["CVE-2026-59171"]
title: "JSON-java: unbounded numeric literals let parsing stall request threads"
severity: "medium"
cvss: 5.9
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["java", "json-java", "org.json", "package"]
not_affected_if: ["trusted-input-only", "version-outside-range"]
published_at: "2026-11-06T21:17:09+00:00"
first_seen_at: "2026-11-06T21:45:07+00:00"
updated_at: "2026-11-06T21:46:47+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-59171", "first_seen_at": "2026-11-06T21:45:07+00:00"}]
exploit_sources: []
---

# JSON-java: unbounded numeric literals let parsing stall request threads

Link for people: https://infrastack.ai/live/CVE-2026-59171 (this .md is for agents)

JSON-java is a Java library for reading JSON and XML. A very long numeric value in attacker-supplied input makes the parser spend super-linear CPU time converting it, which can block request-handling threads and cause denial of service.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Find JSON-java in the project's dependencies (for example `org.json:json` in Maven or Gradle files) and note the version.
- Check whether that version is between `20150729` and `20260522` inclusive.
- Look for code that parses untrusted input with JSONObject, JSONArray or XML.toJSONObject.

## Fix

- JSON-java: move to `20260719`, which limits numeric conversion length.

## Timeline

- 2026-11-06T21:45:07+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-59171

## Documents

- [advisory] Vendor advisory: github.com https://github.com/stleary/JSON-java/security/advisories/GHSA-ghc9-756g-vrcv
- [fix] Patch: github.com https://github.com/stleary/JSON-java/commit/703ac34a55400f9c50889e3d0c778b6d7962e81c
- [fix] Patch: github.com https://github.com/stleary/JSON-java/commit/ab92bb9088a37f9e346cd1dda66f6a3c40a201e0
- [fix] Patch: github.com https://github.com/stleary/JSON-java/commit/fce83c91bb229dde472283dea648a9a8955237fd
- [fix] Release notes: github.com https://github.com/stleary/JSON-java/releases/tag/20260719

## From the sources

JSON-java is a reference implementation of a JSON package in Java. From version 20150729 through 20260522, JSONTokener.nextSimpleValue can accumulate unbounded numeric tokens before JSONObject.stringToNumber passes them to BigInteger or BigDecimal conversion without a length limit. An application that parses attacker-controlled JSON or XML through JSONObject, JSONArray, or XML.toJSONObject can spend super-linear CPU time converting a sufficiently long numeric literal, blocking request-handling threads and causing denial of service. Strict mode and keep-strings settings in JSONParserConfiguration do not prevent the affected conversion path. Version 20260719 limits numeric conversion length.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
