CVE-2026-59880
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 29 - wyżej niż 29% wszystkich znanych CVE
Streszczenie
W bibliotece Immutable.js przed wersjami 4.3.9 i 5.1.8 struktury danych Immutable.Map i Immutable.Set przechowują klucze o tym samym 32-bitowym skrócie w liniowo skanowanym zasobniku kolizji HashCollisionNode. Osoba atakująca kontrolująca klucze wstawiane do Mapy (np. przez Immutable.Map(obj), Immutable.fromJS(obj), state.merge(userObject) lub mergeDeep) może stworzyć wiele kolizyjnych kluczy, powodując degradację wydajności operacji wstawiania i wyszukiwania do nieproporcjonalnie wysokiego zużycia CPU.
Ocena ryzyka
Ryzyko polega na możliwości przeprowadzenia ataku typu DoS (Denial of Service) poprzez celowe generowanie kolizji skrótów, co może prowadzić do znacznego spowolnienia lub przeciążenia aplikacji wykorzystującej podatną wersję Immutable.js.
Rekomendacja
Należy niezwłocznie zaktualizować bibliotekę Immutable.js do wersji 4.3.9 lub 5.1.8 (lub nowszej), które zawierają poprawkę eliminującą podatność.
Inne podatności w Immutable.js
Zobacz wszystkie- CVE-2026-29063Krytyczne
Biblioteka Immutable.js przed wersjami 3.8.3, 4.3.7 i 5.1.5 jest podatna na Prototype Pollution przez API mergeDeep(), mergeDeepWith(), merge(), Map.toJS() i Map.toObject().
- CVE-2026-59879Wysokie
W bibliotece Immutable.js w wersjach przed 4.3.9 i 5.1.8 wykryto podatność w funkcjach List#set, List#setSize, List#setIn, List#updateIn oraz w funkcjonalnych set, setIn i updateIn. Błędna obsługa indeksu lub rozmiaru w zakresie od 2^30 do 2^31 w metodzie setListBounds w pliku src/List.js może prowadzić do nieskończonej pętli, niekontrolowanego przydziału pamięci lub cichego zawijania dużych wartości.
Oryginalny opis (angielski, źródło NVD)
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.

