CVE-2026-89011
WysokieCVSS 7.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 19 - wyżej niż 19% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący kontrolujący serwer Git może przekierować kolejne operacje sieciowe przez własne proxy i doprowadzić do przesłania danych uwierzytelniających ofiary do atakującego poprzez wywołanie callbacku onAuth.
Rekomendacja
Zaktualizuj bibliotekę isomorphic-git do wersji 1.42.0 lub nowszej.
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-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.
Oryginalny opis (angielski, źródło NVD)
isomorphic-git before 1.42.0 contains a prototype pollution vulnerability in the getRemoteInfo function that allows a malicious Git server operator to pollute Object.prototype by advertising crafted ref names containing '__proto__' path segments during ref negotiation. Attackers controlling a Git server can advertise a specially crafted ref such as '__proto__/corsProxy' to reroute all subsequent network operations through an attacker-controlled proxy, causing isomorphic-git to invoke the victim's onAuth callback and transmit credentials to the attacker when the victim calls getRemoteInfo with an attacker-supplied URL.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

