CVE-2026-63395
WysokieCVSS 8.8Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 54 - wyżej niż 54% wszystkich znanych CVE
Streszczenie
W isomorphic-git przed wersją 1.38.6 funkcja git.checkout zapisuje nowe ścieżki potomne przez symlinkowane katalogi nadrzędne bez ich sprawdzania. Złośliwe repozytorium może najpierw umieścić symlink katalogu, a następnie podmienić stan drzewa na plik potomny pod tą ścieżką, co przy Node fs na Linux lub macOS pozwala zapisywać pliki poza drzewem roboczym.
Ocena ryzyka
Możliwy jest dowolny zapis plików na hoście, a w konsekwencji wykonanie kodu, jeśli aplikacja używa isomorphic-git z Node fs na Linux lub macOS. Środowiska przeglądarkowe i pamięciowe są ograniczone do wirtualnego systemu plików.
Rekomendacja
Zaktualizuj isomorphic-git do wersji 1.38.6 lub nowszej. Unikaj klonowania i pobierania niezaufanych repozytoriów oraz rozważ uruchamianie operacji git w środowisku o ograniczonych uprawnieniach zapisu.
Inne podatności w isomorphic-git
Zobacz wszystkie- CVE-2026-63478Średnie
isomorphic-git to czysto javascriptowa implementacja Git dla Node.js i przeglądarek. W wersjach przed 1.38.6 parser drzew w src/models/GitTree.js akceptuje samodzielną nazwę wpisu drzewa "..", ponieważ odrzuca tylko separatory ścieżek. Podczas klonowania lub checkoutu ze złośliwego lub kontrolowanego przez atakującego pośrednika zdalnego repozytorium (nie GitHub) zagnieżdżone wpisy ".." mogą wyjść poza katalog roboczy i zapisać pliki w wybranych przez atakującego ścieżkach nadrzędnych w dowolnym dostawcy systemu plików opartym na hoście. Zapis dowolnych plików może nadpisać pliki startowe lub konfiguracyjne i doprowadzić do wykonania kodu. Repozytoria hostowane na GitHub nie są bezpośrednim źródłem, ponieważ GitHub odrzuca wpisy ".." podczas kontroli integralności repozytorium. Problem naprawiono w wersji 1.38.6.
- CVE-2026-63476Średnie
isomorphic-git to czysto javascriptowa implementacja Git dla Node.js i przeglądarek. W wersjach przed 1.38.6 isomorphic-git odczytuje kontrolowany przez serwer parametr targetSize podczas stosowania delty packfile w src/utils/applyDelta.js i przekazuje go bez ograniczenia do Buffer.alloc(targetSize). Złośliwy lub kontrolowany przez atakującego pośrednika zdalny serwer może wysłać jeden nagłówek delty, który spowoduje, że git.clone() lub git.fetch() przydzieli około 2 GB pamięci przed walidacją rzeczywistego wyniku delty. GitPackIndex.fromPack pomija późniejszy błąd niezgodności rozmiaru, więc host z wystarczającą pamięcią może zachować marnotrawstwo zasobów bez widocznego błędu, podczas gdy kontenery, funkcje serverless i małe maszyny wirtualne mogą zostać zakończone. Limity sterty Node.js nie łagodzą przydziału poza stertą (off-heap) przez Buffer. Problem naprawiono w wersji 1.38.6.
- CVE-2026-63475Średnie
isomorphic-git przed wersją 1.38.6 zapisuje na dysku cykliczne referencje symboliczne (symref) dostarczone przez serwer i rozwiązuje je bez limitu głębokości ani wykrywania cykli. Po sklonowaniu złośliwego lub przechwyconego repozytorium operacje takie jak log, status, checkout czy branch nie kończą się, co trwale unieruchamia repozytorium.
- CVE-2026-89011Wysokie
isomorphic-git w wersjach przed 1.42.0 zawiera podatność prototype pollution w funkcji getRemoteInfo. Złośliwy operator serwera Git może zanieczyścić Object.prototype, ogłaszając spreparowane nazwy ref zawierające segmenty ścieżki '__proto__' podczas negocjacji ref.
Oryginalny opis (angielski, źródło NVD)
isomorphic-git is a pure JavaScript implementation of Git for Node.js and browsers. Prior to 1.38.6, isomorphic-git's git.checkout writes new child paths through symlinked leading directory components without checking them. A malicious repository can first place a directory symlink and later replace the tree state with a child file beneath that path; the usual trigger is a clone followed by a later pull, while a single clone can trigger the issue when a symlink already exists or the consuming application accesses the tree. With Node fs on Linux or macOS, the operating system can resolve the write outside the working tree, permitting arbitrary host file writes and possible code execution. Node fs on Windows usually blocks the symlink plant without additional privilege, and browser or in-memory providers limit impact to their virtual filesystem and are affected only when they implement symlink creation and following. This issue is fixed in version 1.38.6.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

