CVE-2026-63475
ŚrednieCVSS 4.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może doprowadzić do trwałego odmowy usługi (DoS) w aplikacji korzystającej z isomorphic-git, blokując operacje na repozytorium i uniemożliwiając normalną pracę.
Rekomendacja
Zaktualizuj isomorphic-git do wersji 1.38.6 lub nowszej oraz unikaj klonowania repozytoriów z niezaufanych źródeł.
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-63395Wysokie
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.
- 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 persists server-supplied circular symref= capabilities through updateRemoteRefs, and GitRefManager.resolve() follows the resulting loose symbolic references without a default depth limit or cycle detection. After a clone from a malicious or man-in-the-middle-controlled remote, operations such as log, status, checkout, and branch that resolve refs/remotes/origin/a or refs/remotes/origin/b do not terminate. The circular references remain on disk, leaving the repository unusable for the application and causing a persistent denial of service. This issue is fixed in version 1.38.6.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

