HIGH🇬🇧 English

CVE-2026-59879

Immutable.js: nieskończona pętla i niekontrolowana alokacja pamięci przy dużych indeksach List

CVSS 8.7v4.0pub. 2026-07-08upd. 2026-07-10

Biblioteka Immutable.js nieprawidłowo obsługuje indeksy i rozmiary z zakresu 2^30 do 2^31 w operacjach na strukturze List, co może doprowadzić do nieskończonej pętli lub nieograniczonej alokacji pamięci. Podatność jest groźna, ponieważ może zostać wywołana zdalnie bez uwierzytelnienia i prowadzi do niedostępności usługi (DoS).

Pokaż oryginał (EN)

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.

🤖 Analiza AI
Jak działa

Metody List#set, List#setSize, List#setIn, List#updateIn oraz ich funkcyjne odpowiedniki (set, setIn, updateIn) nieprawidłowo walidują wartości indeksów i rozmiarów w funkcji setListBounds w pliku src/List.js. Gdy przekazany indeks lub rozmiar mieści się w zakresie od 2^30 do 2^31, pusta lista (empty List) wchodzi w nieskończoną pętlę, której nie można przechwycić wyjątkiem (uncatchable infinite loop). W przypadku listy z danymi dochodzi do nieograniczonej alokacji pamięci aż do awaryjnego zakończenia procesu. Dodatkowo metoda setSize cicho zawija (wraps) duże wartości, co prowadzi do nieprzewidywalnego zachowania.

Skutki

Atakujący może spowodować całkowite zawieszenie procesu Node.js lub innego środowiska uruchomieniowego przez wywołanie nieskończonej pętli albo wyczerpanie dostępnej pamięci, co skutkuje awaryjnym zakończeniem aplikacji (DoS). Poufność i integralność danych nie są bezpośrednio zagrożone.

Mitygacja

Należy zaktualizować bibliotekę Immutable.js do wersji 4.3.9 (dla gałęzi 4.x) lub 5.1.8 (dla gałęzi 5.x), w których problem został naprawiony. Szczegóły dostępne w oficjalnych notach wydania na GitHub oraz w komunikacie bezpieczeństwa GHSA-v56q-mh7h-f735.

Kogo dotyczy

Immutable.js (pakiet immutable) w wersjach wcześniejszych niż 4.3.9 (gałąź 4.x) oraz wcześniejszych niż 5.1.8 (gałąź 5.x).

CVSS 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
  • Immutable Js Immutable

    APP
    Immutable-Js
    < 4.3.95.0.0 – 5.1.8 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2026-59880HIGH8.7PL ✓ten sam produkt

Immutable.js — atak ReDoS przez kolizje kluczy w Map i Set

CVE-2026-29063HIGH8.7ten sam produkt

Immutable.js provides many Persistent Immutable data structures. Prior to versions 3.8.3, 4.3.7, and 5.1.5, Pr...