Description
Immutable.js provides many Persistent Immutable data structures. Prior to 4.3.9 and 5.1.8, Immutable.Map and Immutable.Set keep keys that share the same 32-bit hash in a HashCollisionNode collision bucket that is scanned linearly, allowing an attacker who controls keys inserted into a Map, such as through Immutable.Map(obj), Immutable.fromJS(obj), state.merge(userObject), or mergeDeep, to craft many colliding keys and degrade insertion and lookup to consume disproportionate CPU. 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

Immutable.js provides persistent immutable structures such as Map and Set. In versions older than 4.3.9 and 5.1.8, a HashCollisionNode stores keys with identical 32‑bit hashes in a linear‑scan bucket. If an attacker controls the keys inserted into a Map or Set—for example, by calling Immutable.Map(obj), Immutable.fromJS(obj), state.merge(userObject), or mergeDeep—they can create many colliding keys, forcing each insert or lookup to traverse the entire bucket. This linear degradation consumes disproportionate CPU cycles and can cause the application to become unresponsive, resulting in denial of service.

Affected Systems

Applications that import the immutable-js library and use Map or Set data structures are affected. The flaw exists in all releases prior to 4.3.9 and 5.1.8; upgrading to these versions removes the linear collision scanning.

Risk and Exploitability

The CVSS score of 8.7 signifies high severity, yet the EPSS score of < 1% indicates a very low probability of exploitation in the wild. The vulnerability is not listed in CISA’s KEV catalog. Exploitation requires the ability to supply crafted keys to a Map or Set, which typically occurs when untrusted data is merged into application state or directly assigned to a Immutable structure. An attacker with such capability can force CPU exhaustion and trigger a denial of service.

Generated by OpenCVE AI on July 26, 2026 at 17:35 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Immutable.js library to version 4.3.9 or later, or 5.1.8 or later, which removes the linear collision scanning.
  • Audit or sanitize all inputs that are used as keys in Immutable.Map, Immutable.fromJS, state.merge or mergeDeep to ensure untrusted data cannot be inserted directly.
  • Monitor CPU usage and application responsiveness; consider limiting the size of data passed to Immutable structures or temporarily replacing them with safer alternatives while a patch is applied.

Generated by OpenCVE AI on July 26, 2026 at 17:35 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-xvcm-6775-5m9r Immutabl: Hash-collision algorithmic complexity denial of service in Immutable.Map/Set
History

Wed, 08 Jul 2026 17: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:00: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 15:45: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, Immutable.Map and Immutable.Set keep keys that share the same 32-bit hash in a HashCollisionNode collision bucket that is scanned linearly, allowing an attacker who controls keys inserted into a Map, such as through Immutable.Map(obj), Immutable.fromJS(obj), state.merge(userObject), or mergeDeep, to craft many colliding keys and degrade insertion and lookup to consume disproportionate CPU. This issue is fixed in versions 4.3.9 and 5.1.8.
Title Immutable.js: Hash-collision algorithmic complexity denial of service in Immutable.Map/Set
Weaknesses CWE-407
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-08T16:13:46.106Z

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

Link: CVE-2026-59880

cve-icon Vulnrichment

Updated: 2026-07-08T16:13:42.683Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-26T17:45:17Z

Weaknesses
  • CWE-407

    Inefficient Algorithmic Complexity