CVE-2026-114105
ŚrednieCVSS 6.2Streszczenie
W bibliotece adm-zip przed wersją 0.6.1 występuje podatność nieprawidłowego przypisania uprawnień, umożliwiająca ustawienie bitów setuid, setgid lub sticky na rozpakowywanych plikach, gdy włączona jest opcja keepOriginalPermission. Złośliwe atrybuty zewnętrzne zip są przekazywane bez maskowania do chmod.
Ocena ryzyka
Atakujący może dostarczyć zip, który po rozpakowaniu jako root i uruchomieniu pozwoli na podniesienie uprawnień. Może to prowadzić do przejęcia systemu.
Rekomendacja
Zaktualizuj adm-zip do wersji 0.6.1 lub nowszej. Unikaj rozpakowywania niezaufanych archiwów zip jako root.
Inne podatności w adm-zip
Zobacz wszystkie- CVE-2026-114104Średnie
W bibliotece adm-zip przed wersją 0.6.1 występuje podatność niespójnego rozwiązywania wpisów, umożliwiająca obejście walidacji zawartości poprzez dostarczenie archiwów ZIP z zduplikowanymi nazwami wpisów. getEntry() zwraca ostatni duplikat, podczas gdy extractAllTo() zapisuje pierwszy.
- CVE-2026-114103Średnie
Biblioteka adm-zip w wersji 0.6.0 zawiera obejście zabezpieczenia przed bombą dekompresyjną. Atakujący mogą ominąć limit maxOutputLength, wykorzystując asynchroniczną ścieżkę getDataAsync() w methods/inflater.js i tworząc wpisy ZIP ze zafałszowanymi małymi rozmiarami oraz wysoce skompresowanymi danymi DEFLATE.
- CVE-2026-114102Wysokie
adm-zip w wersjach przed 0.6.1 zawiera podatność typu denial of service, która pozwala nieuwierzytelnionym atakującym na zawieszenie procesu Node.js poprzez złośliwy plik ZIP, ponieważ inflateAsync w methods/inflater.js nie ma nasłuchiwacza błędów strumienia zlib. Atakujący może dostarczyć ZIP z uszkodzonymi danymi DEFLATE przetwarzanymi przez readFileAsync, readAsTextAsync, extractAllToAsync lub getDataAsync, wywołując nieprzechwytywany wyjątek, który kończy wszystkie żądania w toku.
- CVE-2026-102282Wysokie
Biblioteka adm-zip przed wersją 0.6.1 stosuje uniksowe bity uprawnień z wpisu ZIP bezpośrednio do rozpakowanego pliku przez fs.chmodSync(), gdy keepOriginalPermission=true jest przekazane do extractAllTo()/extractEntryTo() — i nigdy nie filtruje bitów setuid/setgid/sticky. Złośliwy ZIP może utworzyć plik wykonywalny z mode 04755, co przy rozpakowywaniu jako root prowadzi do wykonania kodu atakującego z uprawnieniami roota.
- CVE-2026-77301Wysokie
Podatność w bibliotece adm-zip (JavaScript) przed wersją 0.6.1 dotyczy funkcji getData() w zipEntry.js, która ufa rozmiarowi nieskompresowanemu z centralnego katalogu i alokuje pamięć przed walidacją. Mały spreparowany plik ZIP może deklarować wielogigabajtowy rozmiar, powodując nadmierne zużycie pamięci przed zgłoszeniem błędu CRC. Aplikacje czytające wpisy z niezaufanych archiwów mogą zostać przerwane przez system lub doświadczyć wyczerpania pamięci.
- CVE-2026-92000Wysokie
adm-zip w wersjach od 0.5.14 do 0.6.0 nie stosuje limitów wyjścia dekompresji zlib, gdy wpisy ZIP deklarują zerowy rozmiar nieskompresowany. Atakujący mogą stworzyć złośliwe archiwa ZIP z wysoce kompresowalnymi wpisami deklarującymi zerowy rozmiar, co prowadzi do wyczerpania pamięci i odmowy usługi.
- CVE-2026-76845Średnie
adm-zip w wersjach 0.5.9 do 0.6.0 podąża za dowiązaniami symbolicznymi w miejscu wyodrębniania. Funkcja Utils.sanitize sprawdza tylko formę stringową nazwy wpisu archiwum, a Utils.writeFileTo otwiera ścieżkę docelową bez użycia O_NOFOLLOW ani wcześniejszego sprawdzenia fs.lstatSync. Jeśli składnik ścieżki w miejscu docelowym istnieje jako dowiązanie symboliczne wskazujące poza katalog wyodrębniania, extractAllTo, extractAllToAsync i extractEntryTo zapisują zawartość wpisu przez to dowiązanie, a następnie zmieniają jego cel, umieszczając zawartość kontrolowaną przez atakującego w pliku poza katalogiem. Osiągnięcie zapisu wymaga włączenia opcji overwrite, ponieważ poprzednie sprawdzenie fs.existsSync również rozwiązuje dowiązanie i w przeciwnym razie odmawia.
- CVE-2026-39244Wysokie
Biblioteka adm-zip przed wersją 0.5.18 jest podatna na atak typu odmowa usługi (DoS) poprzez spreparowany plik ZIP z manipulowanym polem rozmiaru nieskompresowanego. Atakujący może utworzyć mały plik ZIP (ok. 120 bajtów) deklarujący rozmiar nieskompresowany na poziomie 4 GB, co prowadzi do alokacji pamięci o amplifikacji ponad 33 milionów do 1, powodując awarię procesu.
Oryginalny opis (angielski, źródło NVD)
Adm-zip before 0.6.1 contains an incorrect permission assignment vulnerability that allows attackers to set setuid, setgid, or sticky bits on extracted files when keepOriginalPermission is enabled. Attackers can craft zip external file attributes that pass unmasked into chmod, letting attacker-controlled executables gain elevated privileges when extracted as root and later run.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

