CVE-2026-5917
KrytyczneCVSS 9.6Streszczenie
libgit2 w wersjach od v0.27.0 do v1.9.0 zbudowany z backendem SSH libssh2 zawiera podatność na wstrzyknięcie poleceń powłoki, która pozwala zdalnym atakującym na wykonanie dowolnych poleceń na serwerze SSH poprzez podanie ścieżki repozytorium zawierającej niezmaskowane metaznaki powłoki, takie jak pojedyncze cudzysłowy, średniki lub rury. Funkcja gen_proto() w ssh_libssh2.c wstawia ścieżkę repozytorium bezpośrednio do ciągu poleceń powłoki bez escapowania znaków specjalnych przed przekazaniem do libssh2_channel_exec(), co umożliwia atakującemu stworzenie złośliwego adresu URL submodułu w pliku .gitmodules, który podczas rekurencyjnego klonowania powoduje interpretację wstrzykniętych poleceń przez powłokę zdalnego serwera na koncie użytkownika SSH ofiary.
Ocena ryzyka
Atakujący może wykonać dowolne polecenia na serwerze SSH w kontekście użytkownika ofiary, co może prowadzić do przejęcia kontroli nad systemem i naruszenia bezpieczeństwa.
Rekomendacja
Zaleca się aktualizację libgit2 do wersji nowszej niż 1.9.0 lub zastosowanie poprawek producenta oraz unikanie klonowania niezaufanych repozytoriów.
Oryginalny opis (angielski, źródło NVD)
libgit2 versions v0.27.0 through v1.9.0 built with the libssh2 SSH backend (USE_SSH=libssh2) contain a shell command injection vulnerability that allows remote attackers to execute arbitrary commands on an SSH server by supplying a repository path containing unescaped shell metacharacters such as single quotes, semicolons, or pipes. The gen_proto() function in ssh_libssh2.c inserts the repository path directly into a shell command string without escaping special characters before passing it to libssh2_channel_exec(), enabling an attacker to craft a malicious submodule URL in a .gitmodules file that, when processed during a recursive clone, causes the remote server's shell to interpret injected commands under the victim's SSH user account.

