CVE-2026-59880: Immutabl: Hash-collision algorithmic complexity denial of service in Immutable.Map/Set
Immutable.Map and Immutable.Set keep keys that share the same 32-bit hash in a collision bucket that is scanned linearly. The string hash is public and deterministic, so an attacker who controls the keys inserted into a Map can craft many keys that all collide, degrading insertion and lookup from amortized O(1) to O(n) per operation — and O(n²) to build or read the whole set. A small, attacker-shaped payload can therefore consume disproportionate CPU and, on a single-threaded runtime such as Node.js, stall the event loop and deny service.
References
- github.com/advisories/GHSA-xvcm-6775-5m9r
- github.com/immutable-js/immutable-js/commit/3dd7e5655012597a41873e328bf9142a8901527b
- github.com/immutable-js/immutable-js/commit/e51d49fc612ded5ec4dfb94ff294d22074269b0f
- github.com/immutable-js/immutable-js/releases/tag/v4.3.9
- github.com/immutable-js/immutable-js/releases/tag/v5.1.8
- github.com/immutable-js/immutable-js/security/advisories/GHSA-xvcm-6775-5m9r
- nvd.nist.gov/vuln/detail/CVE-2026-59880
Code Behaviors & Features
Detect and mitigate CVE-2026-59880 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →