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.
Published: 2026-07-08
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A 32‑bit trie overflow in Immutable.js’s List implementation is triggered when List methods such as set, setSize, setIn, updateIn, or their functional equivalents receive an index or size between 2^30 and 2^31. The bad handling causes an empty List to enter an infinite loop or a populated List to allocate memory without bound until the process aborts, resulting in a denial of service. The flaw is expressed by Integer Overflow (CWE‑190), Unbounded Resource Consumption (CWE‑400), and infinite loop conditions (CWE‑835).

Affected Systems

The vulnerability affects the immutable-js:immutable-js package in any Node.js, browser, or JavaScript environment that imports an unpatched version of the library. Versions earlier than 4.3.9 in the 4.x series and earlier than 5.1.8 in the 5.x series are susceptible. Any application that calls List#set, List#setSize, List#setIn, List#updateIn, or the functional set, setIn, updateIn functions with indices or sizes in the vulnerable range is at risk.

Risk and Exploitability

The CVSS base score of 8.7 marks the flaw as high severity, yet the EPSS score of < 1% indicates a very low likelihood of real‑world exploitation, and the vulnerability is not listed in CISA’s KEV catalog. Attackers would need to supply a large index or size to the vulnerable List operations; a crafted payload that forces a List to use a value between 2^30 and 2^31 can trigger resource exhaustion or an infinite loop, causing the application to become unavailable. If an application sanitizes or limits such values, the risk is substantially reduced, but the high CVSS score still warrants prompt remediation.

Generated by OpenCVE AI on August 1, 2026 at 15:59 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade immutable-js to version 4.3.9 or later of the 4.x line, or to version 5.1.8 or later of the 5.x line, to apply the security fix.
  • Add application‑level validation to reject any index or size passed to List methods that meets or exceeds 2^30.
  • Ensure that any external data used as a List index or size is sanitized or constrained before being supplied to List operations.

Generated by OpenCVE AI on August 1, 2026 at 15:59 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-v56q-mh7h-f735 Immutable.js `List` 32-bit trie overflow → unrecoverable DoS
History

Wed, 08 Jul 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 08 Jul 2026 17:45:00 +0000

Type Values Removed Values Added
First Time appeared Immutable-js
Immutable-js immutable-js
Vendors & Products Immutable-js
Immutable-js immutable-js

Wed, 08 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
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.
Title Immutable.js `List` 32-bit trie overflow → unrecoverable DoS
Weaknesses CWE-1284
CWE-190
CWE-400
CWE-835
References
Metrics cvssV4_0

{'score': 8.7, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Immutable-js Immutable Immutable-js
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-08T19:41:12.330Z

Reserved: 2026-07-07T16:40:07.982Z

Link: CVE-2026-59879

cve-icon Vulnrichment

Updated: 2026-07-08T17:51:30.655Z

cve-icon NVD

Status : Analyzed

Published: 2026-07-08T17:17:26.370

Modified: 2026-07-10T18:48:54.280

Link: CVE-2026-59879

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-01T16:00:05Z

Weaknesses
  • CWE-1284

    Improper Validation of Specified Quantity in Input

  • CWE-190

    Integer Overflow or Wraparound

  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-835

    Loop with Unreachable Exit Condition ('Infinite Loop')