Impact
FlexAssembler compiles string and regular‑expression path filters by joining the full key stack whenever a container starts. Since the key stack grows with each level of nesting, a document with depth D causes D joins whose cost is proportional to the current depth, leading to O(depth²) CPU consumption that stalls the single‑threaded event loop. The attack does not require knowledge of the target schema; a crafted deeply nested JSON can fully exhaust the consuming process. This flaw is an instance of CWE-407 (Uncontrolled Resource Consumption) and CWE-770 (Difficulty in Mitigation).
Affected Systems
The vulnerability appears in uhop:stream-json from version 2.0.0 through 3.6.x. The issue is resolved in 3.7.0, which introduces a default maximum depth for FlexAssembler. Applications that import earlier versions and use string/regular‑expression path filters are affected.
Risk and Exploitability
The CVSS score of 6.2 indicates moderate impact; EPSS is < 1% and the vulnerability is not listed in CISA KEV, suggesting limited observed exploitation. However, any application that accepts arbitrary JSON from untrusted sources and forwards it to FlexAssembler is at risk of a CPU‑based denial of service. Successful exploitation requires only the ability to supply a deeply nested document, making the attack practical in many real‑world contexts.
OpenCVE Enrichment
Github GHSA