CVE-2026-102827
WysokieCVSS 8.1Streszczenie
Biblioteka simple-git przed wersją 4.0.0 zawiera lukę w domyślnym pluginie blockUnsafeOperationsPlugin, który porównuje nazwy opcji z dosłownymi zapisami niebezpiecznych opcji, podczas gdy Git akceptuje jednoznaczne skróty długich opcji. Argumenty push pochodzące od atakującego, np. skrócone formy --receive-pack lub --exec, mogą ominąć detectVulnerableFlags i doprowadzić do wykonania polecenia wybranego przez atakującego.
Ocena ryzyka
Aplikacje Node.js przekazujące argumenty push pochodzące od użytkownika mogą pozwolić atakującemu na wykonanie dowolnego polecenia w kontekście procesu Node.js. Może to prowadzić do przejęcia systemu lub kradzieży danych.
Rekomendacja
Zaktualizuj bibliotekę simple-git do wersji 4.0.0 lub nowszej. Dodatkowo nie przekazuj niezaufanych argumentów bezpośrednio do operacji git push.
Inne podatności w simple-git
Zobacz wszystkie- CVE-2026-102826Wysokie
Biblioteka simple-git przed wersją 4.0.0 nie odrzuca w pełni dyrektyw include konfiguracji przekazanych przez customArgs do git.clone(). Brak klasyfikacji include.path pozwala Gitowi załadować plik konfiguracyjny kontrolowany przez atakującego, a poprawka nie obejmuje includeIf.<condition>.path. Załadowana konfiguracja może ustawić wykonywalną opcję Git, taką jak core.sshCommand, która zostanie uruchomiona z uprawnieniami procesu Node.js.
- CVE-2026-102828Krytyczne
simple-git, interfejs do wykonywania poleceń git w aplikacjach node.js, umożliwia aplikacjom wykonywanie operacji Git z JavaScript. Od wersji 3.15.0 do 4.0.1 domyślny blockUnsafeOperationsPlugin nie klasyfikuje trailer.<token>.cmd jako niebezpiecznej konfiguracji. Aplikacja, która przekazuje wartości kontrolowane przez atakującego przez SimpleGitOptions.config lub argumenty -c, może pozwolić Gitowi na wywołanie wybranej przez atakującego komendy powłoki, gdy git interpret-trailers przetwarza skonfigurowany trailer. Komenda wykonuje się z tożsamością i uprawnieniami systemu operacyjnego procesu Node.js. Problem naprawiono w wersji 4.0.1.
- CVE-2026-6951Krytyczne
Podatność w bibliotece simple-git przed wersją 3.36.0 umożliwia zdalne wykonanie kodu (RCE) z powodu niekompletnej łatki dla CVE-2022-25912. Łatka blokowała opcję -c, ale nie równoważną formę --config, co pozwala atakującemu na wykorzystanie protokołu ext:: do wykonania kodu.
- CVE-2026-28292Krytyczne
Biblioteka `simple-git` w wersjach od 3.15.0 do 3.32.2 zawiera podatność umożliwiającą ominięcie poprawek dla CVE-2022-25860 i CVE-2022-25912, co prowadzi do zdalnego wykonania kodu na hoście. Problem został naprawiony w wersji 3.23.0.
- CVE-2026-28291Wysokie
Podatność w bibliotece simple-git do wersji 3.31.1 umożliwia wykonanie dowolnych poleceń poprzez manipulację opcjami Git, omijając zabezpieczenia przed niebezpiecznymi opcjami jak -u czy --upload-pack. Problem wynika z niekompletnej łatki dla CVE-2022-25860, ponieważ elastyczne parsowanie opcji Git pozwala na użycie wielu kombinacji znaków (np. -vu, -4u, -nu) do obejścia blokady opartej na wyrażeniach regularnych. Ze względu na praktycznie nieskończoną liczbę wariantów opcji akceptowanych przez Git, całkowite zabezpieczenie poprzez blokowanie może być niemożliwe bez pełnej emulacji parsowania opcji Git.
Oryginalny opis (angielski, źródło NVD)
simple-git, an interface for running git commands in any node.js application, enables applications to execute Git operations from JavaScript. Prior to 4.0.0, the default blockUnsafeOperationsPlugin compares parsed option names with literal dangerous option spellings while Git accepts unambiguous long-option abbreviations. Attacker-influenced push arguments such as abbreviated --receive-pack or --exec forms can therefore bypass detectVulnerableFlags, reach git push against a local or file remote or an attacker-influenced receive-pack target, and cause Git to invoke an attacker-selected command in consumers that expose those arguments. The clone-side abbreviation handling does not protect the push path. This issue is fixed in 4.0.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

