CVE-2026-59880

Immutable.js: Hash-collision algorithmic complexity denial of service in Immutable.Map/Set

Published Jul 8, 2026 CVSS 4.0 · 8.7 High EPSS < 1% KEV · Not listed
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.

Analysis

AI-generated

Technical 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.

Remediation

No solution or workaround provided in the CVE record.

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 August 1, 2026 at 16:01 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-xvcm-6775-5m9r Immutable: Hash-collision algorithmic complexity denial of service in Immutable.Map/Set
History
Type Values Removed Values Added
Metrics ssvc

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

Type Values Removed Values Added
First Time appeared Immutable-js
Immutable-js immutable-js
Vendors & Products Immutable-js
Immutable-js immutable-js
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'}

Weaknesses
  • CWE-407

    Inefficient Algorithmic Complexity

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jul 8, 2026, 4:13 PM
Reserved
Jul 7, 2026, 4:40 PM
Status
Analyzed
Published
Jul 8, 2026, 4:16 PM
Modified
Jul 10, 2026, 6:49 PM