
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-71429 is a denial-of-service vulnerability in the stream-json npm package (by uhop) caused by quadratic algorithmic complexity (O(D²)) in its path filter functions. The pick, ignore, filter, and replace filters in src/core/filters/filter-base.js recompute the full path string from the nesting stack on every checkable token, meaning a deeply nested JSON document of depth D incurs O(D²) processing cost rather than O(D). All versions up to and including 3.4.0 are affected; version 3.5.0 contains the fix. The vulnerability was first published on July 7, 2026, and added to the GitHub Advisory Database on September 3, 2026, with a CVSS v3.1 base score of 6.2 (Medium) (Github Advisory, Red Hat Bugzilla).
The root cause is CWE-407 (Inefficient Algorithmic Complexity) and CWE-1046 (Creation of Immutable Text Using String Concatenation). In filter-base.js, both stringFilter and regExpFilter call stack.join(separator) on every invocation, which is an O(depth) operation. Since the filter is called once per nesting level for every checkable token, processing a document of depth D results in O(D²) total work. This is triggered purely by document structure (nesting depth), not byte volume — a ~360 KB payload of pure nesting can block the Node.js event loop for approximately 12 seconds, and extrapolating to 1–2 MB reaches single-digit minutes of CPU time per request. The streamArray, streamObject, and streamValues streamers are not affected because they use the constant-time asm.depth getter. A public proof-of-concept is included in the advisory (Github Advisory).
Successful exploitation causes a remote, unauthenticated denial-of-service condition against any Node.js application that processes untrusted JSON through the pick, ignore, filter, or replace filters with a string or RegExp path — the library's primary documented use case. A single crafted request can pin a CPU core and block the Node.js event loop for seconds to minutes, degrading or completely halting the service. There is no confidentiality or integrity impact; the vulnerability is limited to availability (Github Advisory, Red Hat Bugzilla).
A public proof-of-concept is included in the official security advisory and requires no authentication or special privileges to execute. The EPSS score is 0.0 as of the time of disclosure, and there is no evidence of in-the-wild exploitation or inclusion in the CISA KEV catalog. No threat actor attribution has been reported. The attack requires only the ability to send a crafted JSON body to an application using the affected filters (Github Advisory).
stream-json version ≤ 3.4.0 with pick, ignore, filter, or replace filters (e.g., an API endpoint that extracts a field from a JSON body).'{"meta":'.repeat(D) + '1' + '}'.repeat(D). A depth of 40,000 produces a ~360 KB document.Upgrade stream-json to version 3.5.0 or later, which caps JSON nesting depth at 1024 by default and throws a RangeError for inputs exceeding this limit. If upgrading immediately is not possible, consider adding application-level input validation to reject JSON bodies with excessive nesting depth before they reach the stream-json filters. The maxDepth option can be set to a custom value (e.g., pick({ filter: 'data', maxDepth: 100 })), or set to Infinity to disable the limit (not recommended for untrusted input). The streamArray, streamObject, and streamValues APIs are not affected and can be used as alternatives where applicable (Github Advisory, Fix Commit).
The vulnerability was reported by researcher ataberk-xyz and the fix was authored and published by the library maintainer (uhop). Red Hat tracked the issue via their security response process (Bugzilla bug 2528227). No significant broader media coverage or notable social media commentary has been identified beyond standard vulnerability database aggregation (Github Advisory, Red Hat Bugzilla).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."