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

The vulnerability is a 32‑bit trie overflow in Immutable.js’s List implementation that triggers an infinite loop or unbounded memory allocation when List methods such as set, setSize, setIn, updateIn, or their functional equivalents receive an index or size in the range 2^30 to 2^31. The effect is a process that either hangs indefinitely or consumes all memory until it aborts, resulting in a denial of service. This weakness is represented by Integer Overflow (CWE‑190), Unbounded Resource Consumption (CWE‑400), and infinite loop conditions (CWE‑835).

Affected Systems

The issue targets the immutable-js library, specifically any version earlier than 4.3.9 in the 4.x line or earlier than 5.1.8 in the 5.x line. Any application—Node.js, browser, or other JavaScript environment—that imports immutable-js and invokes List methods such as set, setSize, setIn, updateIn, or the functional set, setIn, updateIn functions is at risk if it can provide an index or size within the vulnerable range.

Risk and Exploitability

The CVSS base score of 8.7 marks the flaw as high severity, but the EPSS score of < 1% indicates a very low likelihood of exploitation in the wild, and the vulnerability is not listed in CISA’s KEV catalog. Attackers must be able to supply a large index or size to 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 disallows such large values or does not expose them to untrusted input, the risk is reduced. Nonetheless, the high CVSS score warrants prompt remediation.

Generated by OpenCVE AI on July 29, 2026 at 13:55 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to immutable-js v4.3.9 or newer 4.x releases, or to v5.1.8 or newer 5.x releases.
  • Add application-level validation to ensure that any index or size passed to List methods is less than 2^30.
  • Sanitize any external data that may become a List index or size before invoking List operations.

Generated by OpenCVE AI on July 29, 2026 at 13:55 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-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

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-29T14:00:03Z

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')