CVE-2026-33228
Critical · CVSS 9.8flatted — Prototype Pollution via unsanitized array index key in JSON parser
- CVSS
- 9.8
- nvd
- EPSS
- 0.81%
- 53th pct
- KEV
- No
- Class
- oss containerizable
- CWE-1321, CWE-915
Description
flatted is a circular JSON parser. Prior to version 3.4.2, the parse() function in flatted can use attacker-controlled string values from the parsed JSON as direct array index keys, without validating that they are numeric. Since the internal input buffer is a JavaScript Array, accessing it with the key "__proto__" returns Array.prototype via the inherited getter. This object is then treated as a legitimate parsed value and assigned as a property of the output object, effectively leaking a live reference to Array.prototype to the consumer. Any code that subsequently writes to that property will pollute the global prototype. This issue has been patched in version 3.4.2.
Search profile — drives PoC discovery
Affected packages
| npm | flatted | 0 → 3.4.2 |
References
- https://github.com/WebReflection/flatted/commit/885ddcc33cf9657caf38c57c7be45ae1c5272802
- https://github.com/WebReflection/flatted/releases/tag/v3.4.2
- https://github.com/WebReflection/flatted/security/advisories/GHSA-rf6f-7fwh-wjgh
- https://access.redhat.com/errata/RHSA-2026:13826
- https://access.redhat.com/errata/RHSA-2026:34342
- https://access.redhat.com/errata/RHSA-2026:9742
- https://access.redhat.com/security/cve/CVE-2026-33228
- https://bugzilla.redhat.com/show_bug.cgi?id=2449872
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-33228.json
Status: enriched · ingested 2026-06-27T06:00:38.000Z · profiled 2026-07-01T06:30:14.000Z