CVE-2026-53585
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 25 - wyżej niż 25% wszystkich znanych CVE
Streszczenie
libgit2 przed wersjami 1.8.6 i 1.9.5 zawiera podatność w funkcji git_delta_apply, która ufa kontrolowanej przez atakującego wartości res_sz, co może prowadzić do nadmiernych alokacji pamięci i wyczerpania pamięci. Złośliwe dane pakietów mogą być dostarczone przez git_clone, git_fetch, git_remote_fetch, git_indexer_append lub lokalne repozytorium.
Ocena ryzyka
Ryzyko polega na możliwości wyczerpania pamięci, co może prowadzić do odmowy usługi (DoS).
Rekomendacja
Zaleca się aktualizację libgit2 do wersji 1.8.6 lub 1.9.5, które zawierają poprawkę.
Inne podatności w libgit2
Zobacz wszystkie- CVE-2016-10129Wysokie
Wsparcie dla protokołu Git Smart w libgit2 przed wersją 0.24.6 oraz 0.25.x przed wersją 0.25.1 umożliwia zdalnym atakującym spowodowanie odmowy usługi (dereferencja wskaźnika NULL) poprzez wysłanie pustej linii pakietu.
- CVE-2016-10128Krytyczne
Przepełnienie bufora w funkcji git_pkt_parse_line w protokole Git Smart w libgit2 przed wersją 0.24.6 oraz 0.25.x przed wersją 0.25.1 umożliwia zdalnym atakującym wywołanie nieokreślonego wpływu poprzez spreparowany pakiet nieczyszczący.
- CVE-2026-53587Wysokie
libgit2 przed wersjami 1.8.6 i 1.9.5 zawiera podatność polegającą na wykonaniu strncmp o stałej długości w set_data bez uprzedniego sprawdzenia, czy bufor capability w pakiecie pkt-line protokołu smart zawiera 14 bajtów. Złośliwy serwer Git może spowodować, że format_str przesunie się poza pkt-line, a obliczenie długości przez memchr ulegnie niedomiarowi, co prowadzi do odczytu poza stertą i może spowodować awarię klienta podczas pierwszego pakietu reklamującego referencje.
- CVE-2026-53586Średnie
libgit2 przed wersjami 1.8.6 i 1.9.5 zawiera podatność w wbudowanym transporcie HTTP, która pozwala na przekierowanie do niezaufanego hosta i wysłanie poświadczeń do niego. Atakujący kontrolujący zaufany host Git lub otwarte przekierowanie może ujawnić poświadczenia HTTP Basic, tokeny dostępu osobistego lub równoważne poświadczenia.
- CVE-2026-53584Średnie
libgit2 przed wersjami 1.8.6 i 1.9.5 nie odrzuca komponentów przejścia (takich jak ../) w ścieżce submodułu ładowanej z pliku .gitmodules. Złośliwe repozytorium może określić ścieżkę taką jak ../escape-target, a aplikacje inicjalizujące submoduł mogą tworzyć katalogi poza drzewem roboczym repozytorium.
- CVE-2026-53583Średnie
libgit2 przed wersjami 1.8.6 i 1.9.5 zawiera podatność w funkcji verify_server_cert, która używa odwróconego wyniku !!memcmp w gałęzi GEN_IPADD podczas porównywania adresu IP z certyfikatem IP SubjectAltName. Powoduje to odrzucanie pasujących adresów IP i akceptowanie niepasujących, co pozwala atakującemu z certyfikatem zaufanego CA na przechwycenie połączeń do adresów IP.
- CVE-2026-5917Wysokie
libgit2 w wersjach przed 1.8.7 oraz 1.9.0 przed 1.9.7, zbudowany z backendem SSH libssh2 (USE_SSH=libssh2), zawiera podatność na wstrzyknięcie poleceń powłoki. Zdalny atakujący może wykonać dowolne polecenia na serwerze SSH, podając ścieżkę repozytorium zawierającą niescapowane 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 w kontekście konta SSH ofiary.
Oryginalny opis (angielski, źródło NVD)
libgit2 is a portable C implementation of the Git core methods provided as a linkable library with a solid API, allowing to build Git functionality into your application. Prior to 1.8.6 and 1.9.5, git_delta_apply in src/libgit2/delta.c trusts the attacker-controlled res_sz value parsed by hdr_sz from a delta object header and passes that amount to git__malloc before validating delta instructions. Malicious pack data supplied through git_clone, git_fetch, git_remote_fetch, git_indexer_append, or a local attacker-supplied repository can use a very small multi-level OFS_DELTA chain to retain extremely large allocations and exhaust memory. This issue is fixed in versions 1.8.6 and 1.9.5.

