Cloudanix VulnDB

CVE-2023-1370

High · 7.5

CVSS

7.5

EPSS

1.1%

Published

Mar 22, 2023

CISA due date

—

Cloudanix analysis

Monitor only SSVC: Track

A JSON processing component can be tricked into crashing when it receives data with too many layers of nested lists or objects, making the affected software unavailable until restarted.

Exploit Available
Exploitation
Remote Unauthenticated
Attacker needs
None
Complexity
Low
Impact
Denial Of Service
Component
Library
Class
Denial of service
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Unbounded recursive parsing of nested JSON arrays and objects causes stack exhaustion leading to application crash.

Why it matters to the business

Attackers can trigger denial of service against any service using the vulnerable library, resulting in application downtime and degraded availability for users.

How an attack unfolds

An attacker crafts a JSON payload containing excessive levels of nested arrays or objects and submits it to any endpoint or API that processes input with the affected json-smart parser; the recursive descent parser exhausts the call stack and crashes the process. Public exploit code has been available since shortly after disclosure.

How to fix it

Upgrade netplex/json-smart-v2 to commit 08517d2033289386aa97462ce43b986eee928b9f or later; for designate on Ubuntu 16.04 LTS upgrade to package version 1:2.1.0-0ubuntu1 or later. Validate the updated library version is in use and test parsing behavior with deeply nested inputs.

How to confirm the fix worked

Confirm the deployed library version matches or exceeds the listed fixed commits or packages; replay a controlled deeply-nested JSON payload in a test environment and verify the process no longer terminates with stack overflow.

Typical attack path

  1. Identify an application endpoint or service that accepts and parses untrusted JSON using the vulnerable library
  2. Generate a deeply nested JSON structure exceeding typical stack limits
  3. Transmit the payload via HTTP, API call, or other supported input channel
  4. Observe service crash or unresponsiveness confirming successful denial of service

How to detect it

Review application and web server logs for sudden process terminations or out-of-memory/stack overflow errors coinciding with JSON parsing requests; correlate with unusual request sizes or patterns containing repeated opening brackets.

What your security team should do

  • Prioritize upgrade of all instances of json-smart-v2 and dependent packages to the fixed versions within normal change windows
  • Add input-size or nesting-depth limits at the application or WAF layer until upgrades are complete
  • Include the library in regular dependency scanning and SBOM processes to prevent regression

The record

[Json-smart](https://netplex.github.io/json-smart/) is a performance focused, JSON processor lib. When reaching a ‘[‘ or ‘{‘ character in the JSON input, the code parses an array or an object respectively. It was discovered that the code does not have any limit to the nesting of such arrays or objects. Since the parsing of nested arrays and objects is done recursively, nesting too many of them can cause a stack exhaustion (stack overflow) and crash the software.

Affected packages

Ecosystem Package Introduced Fixed
Maven net.minidev:json-smart 0 2.4.9
Chainguard druid-compat 0 34.0.0-r6
Chainguard elasticsearch-7 0 7.17.14-r2
Chainguard elasticsearch-7-bitnami 0 7.17.14-r2
Chainguard elasticsearch-7-iamguarded 0 7.17.14-r2
Chainguard elasticsearch-8 0 8.13.2-r1
Chainguard elasticsearch-8-bitnami 0 8.13.2-r1
Chainguard elasticsearch-8-config 0 8.13.2-r1
Chainguard elasticsearch-8-iamguarded 0 8.13.2-r1
Chainguard elasticsearch-config 0 8.13.2-r1
Chainguard hadoop-client-modules 0 3.3.6-r7
Chainguard sonarqube 0 25.10.0.114319-r0
Chainguard sonarqube-10 0 25.1.0.102122-r0
Chainguard sonarqube-10-docker-compat 0 25.1.0.102122-r0
Chainguard sonarqube-10-scripts 0 25.1.0.102122-r0
Chainguard sonarqube-docker-compat 0 25.10.0.114319-r0
Chainguard sonarqube-scripts 0 25.10.0.114319-r0
Chainguard spark-3.5 0 3.5.7-r2
Chainguard spark-3.5-scala-2.12-compat 0 3.5.7-r2
Chainguard spark-3.5-scala-2.12-iamguarded-compat 0 3.5.7-r2
Chainguard spark-3.5-scala-2.13-compat 0 3.5.7-r2
Chainguard spark-3.5.0-compat 0 0
Chainguard spark-3.5.0-compat-minimal 0 0
Chainguard stargate 0 1.0.79-r2
Chainguard thingsboard 0 3.7-r4
Chainguard thingsboard-tb-js-executor 0 3.7-r4
Chainguard thingsboard-tb-mqtt-transport 0 3.7-r4
Chainguard thingsboard-tb-node 0 3.7-r4
Chainguard thingsboard-tb-web-ui 0 3.7-r4
Debian:10 json-smart 0 2.2-2+deb10u1
Debian:11 json-smart 0 2.2-2+deb11u1
Debian:12 json-smart 0 2.2-2+deb12u1
Debian:13 json-smart 0 2.2-3
Red Hat:ocp_tools:4.11::el8 jenkins 0 0:2.401.1.1686831596-3.el8
Red Hat:ocp_tools:4.11::el8 jenkins-2-plugins 0 0:4.11.1686831822-1.el8
Red Hat:ocp_tools:4.12::el8 jenkins 0 0:2.401.1.1686649641-3.el8
Red Hat:ocp_tools:4.12::el8 jenkins-2-plugins 0 0:4.12.1686649756-1.el8
Red Hat:ocp_tools:4.13::el8 jenkins 0 0:2.401.1.1686680404-3.el8
Red Hat:ocp_tools:4.13::el8 jenkins-2-plugins 0 0:4.13.1686680473-1.el8
Red Hat:openshift:4.10::el8 jenkins-2-plugins 0 0:4.10.1684982411-1.el8
Ubuntu:18.04:LTS json-smart 0 2.2-2ubuntu0.18.04.1
Ubuntu:20.04:LTS json-smart 0 2.2-2ubuntu0.20.04.1
Ubuntu:22.04:LTS json-smart 0 2.2-2ubuntu0.22.04.1
Wolfi druid-compat 0 34.0.0-r6
Wolfi sonarqube 0 25.10.0.114319-r0
Wolfi sonarqube-10 0 25.1.0.102122-r0
Wolfi sonarqube-10-docker-compat 0 25.1.0.102122-r0
Wolfi sonarqube-10-scripts 0 25.1.0.102122-r0
Wolfi sonarqube-docker-compat 0 25.10.0.114319-r0
Wolfi sonarqube-scripts 0 25.10.0.114319-r0
Wolfi spark-3.5 0 3.5.7-r2
Wolfi spark-3.5-scala-2.12-compat 0 3.5.7-r2
Wolfi spark-3.5-scala-2.12-iamguarded-compat 0 3.5.7-r2
Wolfi spark-3.5-scala-2.13-compat 0 3.5.7-r2
Wolfi thingsboard 0 3.7-r4
Wolfi thingsboard-tb-js-executor 0 3.7-r4
Wolfi thingsboard-tb-mqtt-transport 0 3.7-r4
Wolfi thingsboard-tb-node 0 3.7-r4
Wolfi thingsboard-tb-web-ui 0 3.7-r4

Related vulnerabilities