CVE-2026-59879 Details
Description
Immutable.js provides many Persistent Immutable data structures. Prior to 4.3.9 and 5.1.8, List#set, List#setSize, List#setIn, List#updateIn, and the functional set, setIn, and updateIn mishandle an index or size in the range 2 ** 30 to 2 ** 31 in setListBounds in src/List.js, causing an empty List to enter an uncatchable infinite loop, a populated List to allocate without bound until process abort, or setSize to silently wrap large values. This issue is fixed in versions 4.3.9 and 5.1.8.
A denial-of-service vulnerability has been identified in the List component of Immutable.js, specifically in versions prior to 4.3.9 and 5.1.8. The issue arises in the handling of indices and sizes within the range of 2^30 to 2^31. The affected methods, including List#set, List#setSize, List#setIn, List#updateIn, and their functional counterparts, mismanage these values, leading to severe performance issues. An empty List can become stuck in an uncatchable infinite loop, while a populated List can cause unbounded memory allocation, eventually forcing the process to abort. Additionally, the List#setSize method can silently wrap large values, corrupting data without any indication of an error.
Users can upgrade to Immutable.js versions 4.3.9 or 5.1.8, where this vulnerability has been fixed. For those unable to upgrade immediately, it is recommended to validate and clamp any externally supplied List indices or key-path segments against a maximum limit before passing them to Immutable.js. Additionally, request handling can be managed in a worker that can be restarted, with the heap size capped to contain any potential process aborts.
Metrics
CVSS 4.0 Severity and Vector Strings:
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
CISA-ADP
Assessed Jul 8, 2026References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
| URL | Source(s) | Tag(s) |
|---|---|---|
| https://github.com/immutable-js/immutable-js/security/advisories/GHSA-v56q-mh7h-f735 | CISA-ADP | ExploitMitigationVendor Advisory |
| https://github.com/immutable-js/immutable-js/commit/a1a1ee412dcaa380ab325196283d06594ffe4b84 | [email protected] | Patch |
| https://github.com/immutable-js/immutable-js/commit/f0bc997d8eb9886aff2236635aa210a95a04304a | [email protected] | Patch |
| https://github.com/immutable-js/immutable-js/releases/tag/v4.3.9 | [email protected] | ProductRelease Notes |
| https://github.com/immutable-js/immutable-js/releases/tag/v5.1.8 | [email protected] | ProductRelease Notes |
| https://github.com/immutable-js/immutable-js/security/advisories/GHSA-v56q-mh7h-f735 | [email protected] | ExploitMitigationVendor Advisory |
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| CWE-1284 | Improper Validation of Specified Quantity in Input | [email protected] |
| CWE-190 | Integer Overflow or Wraparound | [email protected] |
| CWE-400 | Uncontrolled Resource Consumption | [email protected] |
| CWE-835 | Loop with Unreachable Exit Condition ('Infinite Loop') | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| immutable-js immutable | < 4.3.9 >= 5.0.0, < 5.1.8 |
CPE
Remediation
| |
Change History
3 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jul 10, 2026 | Initial Analysis | [email protected] |
| Jul 8, 2026 | CVE Modified | CISA-ADP |
| Jul 8, 2026 | New CVE Received | [email protected] |