CVE-2026-82393
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 35 - wyżej niż 35% wszystkich znanych CVE
Streszczenie
pnpm przed wersjami 10.34.5 i 11.11.0 akceptuje ścieżkę traversal w nazwie pakietu w manifeście package.json tarballa. Podczas instalacji może to prowadzić do rozpakowania pakietu poza katalogiem node_modules i nadpisania dowolnych plików w systemie, nawet przy użyciu --ignore-scripts.
Ocena ryzyka
Atakujący może nadpisać pliki startowe powłoki, hooki Git lub kod zainstalowanych pakietów, co może prowadzić do wykonania kodu na maszynie ofiary.
Rekomendacja
Zaktualizuj pnpm do wersji 10.34.5 lub 11.11.0, które zawierają poprawkę walidacji nazw pakietów.
Inne podatności w pnpm
Zobacz wszystkie- CVE-2024-53866Krytyczne
Menadżer pakietów pnpm przed wersją 9.15.0 niewłaściwie obsługuje nadpisania i globalną pamięć podręczną. Nadpisania z jednego workspace'u przenikają do metadanych npm zapisanych w globalnej pamięci podręcznej, co może prowadzić do nieautoryzowanego wykonania kodu w innych workspace'ach.
- CVE-2026-82392Wysokie
pnpm przed wersjami 10.34.5 i 11.11.0 parsuje nazwy pakietów z kluczy pnpm-lock.yaml bez walidacji, co może prowadzić do zapisu zawartości pakietów poza katalogiem node_modules podczas instalacji. Jeśli dozwolone są skrypty życia, może to umożliwić wykonanie kodu.
- CVE-2026-59196Wysokie
W menedżerze pakietów pnpm przed wersjami 10.34.4 i 11.7.0, spreparowany alias w pliku lockfile może zostać umieszczony bezpośrednio w katalogu node_modules. Aliasy typu traversal mogą opuścić ten katalog, a zastrzeżone aliasy, takie jak .bin lub .pnpm, mogą nadpisać strukturę należącą do pnpm.
- CVE-2026-59195Wysokie
pnpm przed wersjami 10.34.4 i 11.8.0 akceptuje nazwy pakietów z sekcji configDependencies pliku pnpm-lock.yaml i używa ich bezpośrednio do tworzenia dowiązań symbolicznych w katalogu node_modules/.pnpm-config. Złośliwe repozytorium może dostarczyć spreparowany plik blokady zawierający nazwę konfiguracji z sekwencją nawigacji (traversal), co prowadzi do stworzenia dowiązania poza zamierzonym katalogiem.
- CVE-2026-59194Wysokie
W pnpm przed wersjami 10.34.4 i 11.7.0, spreparowany wpis łatki mógł rozwiązywać ścieżki poza skonfigurowanym katalogiem poprawek, co pozwalało na usunięcie dowolnego dostępnego pliku za pomocą polecenia pnpm patch-remove.
- CVE-2026-55700Wysokie
Menedżer pakietów pnpm w wersjach od 11.3.0 do 11.5.3 zawiera podatność, w której polecenie `pnpm stage download` tworzyło lokalną nazwę pliku na podstawie nazwy pakietu i wersji pochodzących z rejestru. Złośliwy manifest mógł spowodować zapis pliku poza wybranym katalogiem docelowym, nadpisując inny dostępny plik.
- CVE-2026-55699Średnie
W pnpm przed wersjami 10.34.2 i 11.5.3 odkryto podatność polegającą na tym, że klucze obiektu bin w manifeście, takie jak "", "." i "..", przechodziły przez walidację nazw binarnych. Gdy złośliwy pakiet został zainstalowany globalnie, późniejsze operacje globalnego usuwania, aktualizacji lub dodawania zamienników mogły ponownie wyprowadzić te nazwy z zainstalowanego manifestu i przekazać je do funkcji removeBin z użyciem path.join(globalBinDir, binName). Dla "." celuje to w globalny katalog binarny, a dla ".." w jego katalog nadrzędny.
- CVE-2026-55698Wysokie
Menedżer pakietów pnpm przed wersjami 10.34.2 i 11.5.3 przechowuje metadane bootstrap menedżera pakietów w pierwszym dokumencie YAML pliku pnpm-lock.yaml. Złośliwe repozytorium może wykorzystać ten mechanizm, aby ominąć świeże rozwiązywanie wersji menedżera pakietów i spowodować instalację oraz wykonanie dowolnego kodu podczas automatycznej zmiany wersji.
- CVE-2026-55697Wysokie
pnpm przed wersjami 10.34.2 i 11.5.3 umożliwia instalację zależności konfiguracyjnych zdefiniowanych w pliku pnpm-workspace.yaml przed wykonaniem poleceń. Repozytorium może zadeklarować pacquet lub @pnpm/pacquet jako zależność konfiguracyjną, a pnpm traktuje tę zależność jako zgodę na użycie silnika instalacyjnego. Podczas instalacji pnpm rozwiązuje platformowo-specyficzny plik binarny @pacquet/<platform>-<arch>/pacquet z katalogu node_modules/.pnpm-config/<packageName> i uruchamia go jako programista lub użytkownik CI.
- CVE-2026-55487Wysokie
W pnpm przed wersjami 10.34.2 i 11.5.3, normalizator sufiksów peer-dependency błędnie usuwał tekst w nawiasach z lokalizatorów git, URL, tarball, plików i innych. Zatwierdzenie jednego źródła mogło autoryzować inne, kontrolowane przez atakującego źródło, którego lokalizator został znormalizowany do tej samej wartości.
Oryginalny opis (angielski, źródło NVD)
pnpm is a package manager. Prior to 10.34.5 and 11.11.0, pnpm accepts a scoped path traversal in a tarball dependency's package.json manifest name because pnpm11/resolving/npm-resolver/src/pickPackage.ts rejects slash characters only for unscoped names. During pnpm install, the unvalidated name reaches raw path joins in pnpm11/installing/deps-resolver/src/resolvePeers.ts, pnpm11/installing/deps-resolver/src/index.ts, and pnpm11/deps/graph-builder/src/lockfileToDepGraph.ts, causing package extraction outside node_modules and allowing attacker-controlled files to overwrite arbitrary filesystem paths even when --ignore-scripts is used. The overwrite can replace shell startup files, Git hooks, or installed package code and lead to code execution. This issue is fixed in versions 10.34.5, and 11.11.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

