CVE-2026-32141
flatted vulnerable to unbounded recursion DoS in parse() revive phase
Impact
## Summary flatted's `parse()` function uses a recursive `revive()` phase to resolve circular references in deserialized JSON. When given a crafted payload with deeply nested or self-referential `$` indices, the recursion depth is unbounded, causing a stack overflow that crashes the Node.js process. ## Impact Denial of Service (DoS). Any application that passes untrusted input to `flatted.parse()` can be crashed by an unauthenticated attacker with a single request. flatted has ~87M weekly npm downloads and is used as the circular-JSON serialization layer in many caching and logging libraries. ## Proof of Concept ```javascript const flatted = require('flatted'); // Build deeply nested circular reference chain const depth = 20000; const arr = new Array(depth + 1); arr[0] = '{"a":"1"}'; for (let i = 1; i <= depth; i++) { arr[i] = `{"a":"${i + 1}"}`; } arr[depth] = '{"a":"leaf"}'; const payload = JSON.stringify(arr); flatted.parse(payload); // RangeError: Maximum call stack size exceeded ``` ## Fix The maintainer has already merged an iterative (non-recursive) implementation in PR #88, converting the recursive `revive()` to a stack-based loop. ## Affected Versions All versions prior to the PR #88 fix.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | flatted | < 3.4.0 | 3.4.0 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Webreflection | Flatted | before 3.4.0 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/WebReflection/flatted/commit/7eb65d857e1a40de11c47461cdbc8541449f0606
- https://github.com/WebReflection/flatted/pull/88
- https://github.com/WebReflection/flatted/security/advisories/GHSA-25h7-pfq9-p65f
- https://access.redhat.com/errata/RHSA-2026:13826
- https://access.redhat.com/errata/RHSA-2026:21772
- https://access.redhat.com/errata/RHSA-2026:34342
- https://access.redhat.com/errata/RHSA-2026:36651
- https://access.redhat.com/errata/RHSA-2026:40118
- https://access.redhat.com/errata/RHSA-2026:40945
- https://access.redhat.com/errata/RHSA-2026:5807
- https://access.redhat.com/errata/RHSA-2026:9742
- https://access.redhat.com/security/cve/CVE-2026-32141
- https://bugzilla.redhat.com/show_bug.cgi?id=2447083
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-32141.json
- https://github.com/advisories/GHSA-25h7-pfq9-p65f
- https://nvd.nist.gov/vuln/detail/CVE-2026-32141