---
id: CVE-2026-114129
title: >-
  stream-json: FlexAssembler string/RegExp path filters join the full key stack
  per container start, giving O(depth^2) CPU denial of service
summary: >-
  stream-json is a micro-library of stream components for processing JSON and
  JSONC with a minimal memory footprint. From 2.0.0 until 3.7.0, FlexAssembler
  compiles string and regular-expression path filters into matchers that join
  the full…
severity: medium
cvss: 6.2
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'
cvssSource: cna
cwe:
  - CWE-407
vendor: uhop
product: stream-json
affected:
  - 'stream-json >= 2.0.0, < 3.7.0'
published: '2026-10-21'
updated: '2026-10-21'
sourceUpdated: '2026-10-21T17:34:48.034Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-114129'
references:
  - url: >-
      https://github.com/uhop/stream-json/security/advisories/GHSA-jj87-hc4r-jwfw
    label: >-
      https://github.com/uhop/stream-json/security/advisories/GHSA-jj87-hc4r-jwfw
  - url: >-
      https://github.com/uhop/stream-json/commit/1929fd80495d45b47e8f8cb1d4e132f915aef012
    label: >-
      https://github.com/uhop/stream-json/commit/1929fd80495d45b47e8f8cb1d4e132f915aef012
  - url: >-
      https://github.com/uhop/stream-json/commit/c06c9a3c02adef89543e26ecebb45837cb284512
    label: >-
      https://github.com/uhop/stream-json/commit/c06c9a3c02adef89543e26ecebb45837cb284512
  - url: 'https://github.com/uhop/stream-json/releases/tag/3.7.0'
    label: 'https://github.com/uhop/stream-json/releases/tag/3.7.0'
tags:
  - cve.org
ingestedAt: '2026-10-21T18:09:27.274Z'
---

## Overview

stream-json is a micro-library of stream components for processing JSON and JSONC with a minimal memory footprint. From 2.0.0 until 3.7.0, FlexAssembler compiles string and regular-expression path filters into matchers that join the full key stack on every container start. Because the key stack grows with unbounded object or array nesting, a document nested to depth D causes D joins whose cost grows with the current depth, resulting in quadratic CPU consumption on the single-threaded event loop. The join occurs before the rule match decision, so the attacker does not need to know the target schema. Consumers using only function filters or no rules are not affected. A crafted nested document can stall all concurrent work in a process that feeds it to an affected FlexAssembler. This issue is fixed in 3.7.0, which adds a default maximum depth.

## Affected

- `stream-json >= 2.0.0, < 3.7.0`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
