Alert bezpieczeństwa · Wysoka
Git: złośliwe repozytoria mogą uruchamiać kod podczas rekurencyjnego klonowania (CVE-2026-111760)
· 5 minut czytania · Centoculus Security Team
Znana od
Dotyczy: Git przed 2.56.1 (poprawki w 2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1, 2.55.1, 2.56.1)
Co się stało
W dniu 11 listopada 2026 roku projekt Git opublikował nowe wersje, które usuwają sześć luk bezpieczeństwa. Najpoważniejsza z nich to CVE-2026-111760. Rekurencyjne klonowanie złośliwego repozytorium, czyli razem z jego submodułami, może uruchomić kod atakującego na maszynie wykonującej klonowanie.
Przyczyną jest obcięcie liczby całkowitej (integer truncation) w sposobie, w jaki Git obsługuje swój indeks. Bardzo długa ścieżka przechodzi kontrolę bezpieczeństwa Git, ale Git zapisuje ją następnie na dysku pod krótszą nazwą. Atakujący może wybrać tę krótszą nazwę. Pozwala to podmienić plik .git submodułu na dowiązanie symboliczne do katalogu zawierającego złośliwe hooki lub konfigurację. Gdy Git później z tego katalogu korzysta, uruchamia się kod atakującego. Poprawka sprawia, że Git odrzuca takie bardzo długie ścieżki, zanim ich długość zostanie skrócona.
Te same wydania usuwają pięć kolejnych luk:
- CVE-2026-113408: Podczas klonowania pustego repozytorium przez protokół Git w wersji 2 złośliwy serwer może przesłać nazwę gałęzi zawierającą path traversal. Przy backendzie referencji files późniejsza aktualizacja tej gałęzi może zapisać dane poza katalogiem referencji Git.
- CVE-2026-114467: Scalenie tagu zawierającego więcej niż dwa podpisy GPG uszkadza pamięć stosu i może prowadzić do odmowy usługi. Również usługi hostingowe, które wykonują takie scalenia dla swoich użytkowników, mogą być narażone.
- CVE-2026-114469: Binarna łata rozwijająca się do bardzo dużego rozmiaru może ominąć limit rozmiaru łat Git wynoszący około 1 GiB i spowodować awarię Git przez odczyt poza granicami bufora.
- CVE-2026-105437: Bardzo duże scalenie z wieloma konfliktami oraz duży atrybut
conflict-marker-sizemogą spowodować, że Git zapisze dane poza koniec bufora na stercie. GitLab wskazuje, że najbardziej prawdopodobnym celem są serwery hostingowe kodu, poprzezgit merge-tree, którego serwery używają do sprawdzania, czy żądanie pull lub merge może zostać scalone. - CVE-2026-114466: Trzy funkcje git fast-import (
rewrite-submodules-from,rewrite-submodules-toorazexport-pack-edges) mogły zostać użyte do odczytu dowolnych plików albo do tworzenia plików i dopisywania do nich danych. Git odrzuca je teraz w strumieniu wejściowym, chyba że ustawiono--allow-unsafe-features.
Żadne ze źródeł nie raportuje dotąd ataków.
Kogo to dotyczy
Dotknięte są wszystkie systemy działające na wersji Git wcześniejszej niż te poprawione wydania: 2.56.1, 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3 oraz 2.50.2. Na serwerach szczególne znaczenie mają:
- Serwery budowania, CI i wdrożeń, które klonują repozytoria rekurencyjnie (
git clone --recursive,--recurse-submoduleslubgit submodule update --init), zwłaszcza repozytoria lub submoduły pochodzące od zewnętrznych dostawców. Aby CVE-2026-111760 zadziałała, klonowane repozytorium musi być złośliwe. Jeśli klonujesz wyłącznie własne, zaufane repozytoria, ryzyko jest znacznie mniejsze, ale aktualizację warto mimo to przeprowadzić. - Samodzielnie hostowane serwery Git, które wykonują scalenia lub sprawdzenia scaleń treści wysyłanych przez użytkowników (CVE-2026-105437, CVE-2026-114467).
- GitHub Enterprise Server: poprawki znajdują się w wersjach 3.19.15, 3.20.11, 3.21.9 oraz 3.22.4.
- Aplikacje dostarczające własną kopię Git. Potrzebują aktualizacji od swojego dostawcy.
Nie dotyczy to github.com ani GitHub Enterprise Cloud. GitHub zastosował tam już poprawki. Serwery WWW, na których zainstalowano Git, ale które nigdy nie klonują ani nie scalają treści z zewnątrz, w praktyce nie są narażone na lukę klonowania. Warto je mimo to zaktualizować podczas najbliższych prac serwisowych.
Według stanu na 10 listopada 2026 roku, o godzinie 19:09 UTC, Git for Windows nie wydał wersji opartej na Git 2.56.1. Administratorzy systemów Windows powinni śledzić pojawienie się tego wydania.
Co zrobić teraz
- Sprawdź zainstalowaną wersję na każdym serwerze poleceniem
git --version. - Zainstaluj poprawioną wersję z menedżera pakietów systemu operacyjnego (na przykład
apt update && apt install --only-upgrade gitlubdnf upgrade git). Dystrybucje zwykle przenoszą poprawki wstecz do własnych wersji pakietów, dlatego sprawdź komunikat bezpieczeństwa swojej dystrybucji, aby ustalić poprawiony pakiet. Jeśli budujesz Git samodzielnie, zaktualizuj do wersji 2.56.1 lub do poprawionego wydania swojej serii. - Zaktualizuj GitHub Enterprise Server do wersji 3.19.15, 3.20.11, 3.21.9 lub 3.22.4, zależnie od swojej linii wydań. Pozostałe aplikacje dostarczające własną kopię Git należy zaktualizować, gdy ich dostawca wyda poprawkę.
- Dopóki wszystkie systemy nie zostaną zaktualizowane, stosuj się do tymczasowych zaleceń GitHub. Kroki te nie zastępują aktualizacji:
- Klonuj wyłącznie z zaufanych serwerów.
- Nie klonuj rekurencyjnie repozytoriów, którym nie ufasz.
- Nie scalaj treści ani tagów, którym nie ufasz.
- Nie przetwarzaj binarnych łat ani strumieni fast-import z niezaufanych źródeł.
- Na serwerach Git, których nie da się jeszcze zaktualizować, zabezpiecz się przed CVE-2026-105437. Dodaj
conflict-marker-size=7do plikuinfo/attributeskażdego repozytorium albo wyłącz sprawdzanie scaleń dla niezaufanych repozytoriów. - Uruchom ponownie długo działające usługi wywołujące Git, takie jak runnery CI lub demony hostingu Git, aby korzystały z nowego pliku binarnego.
Jak sprawdzić, czy jesteś narażony
- Uruchom
git --version. Wersje starsze niż poprawione wydanie ich serii są podatne: 2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1, 2.55.1 lub 2.56.1. W przypadku pakietów dystrybucji porównaj wersję pakietu z komunikatem bezpieczeństwa swojej dystrybucji, a nie z numerem wersji upstream. - Przeszukaj skrypty budowania i wdrożeń oraz konfiguracje CI pod kątem
--recursive,--recurse-submodulesisubmodule update. Sprawdź, które klonowane repozytoria pochodzą od zewnętrznych dostawców. - Poszukaj kopii Git spoza menedżera pakietów, na przykład poleceniem
which -a git. Sprawdź także Git dołączony do runnerów CI, kontenerów i innych aplikacji.
Źródła
Powiązane wpisy
Alerty bezpieczeństwa ·
Citrix NetScaler ADC i Gateway: krytyczne błędy pamięci umożliwiają odmowę usługi (CVE-2026-120868)
Citrix załatał dziewięć krytycznych błędów pamięci w NetScaler ADC i NetScaler Gateway, które mogą prowadzić do odmowy usługi. CVE-2026-120868 dotyczy każdego wdrożenia. Należy zaktualizować do wersji 14.1-73.57, 13.1-64.39 lub odpowiednich buildów FIPS.
Alerty bezpieczeństwa ·
PostgreSQL CVE-2026-6460: użytkownicy bazy danych, którzy mogą tworzyć obiekty, mogą uruchamiać kod na serwerze
PostgreSQL 18.7, 17.12, 16.16, 15.20 i 14.25 usuwają CVE-2026-6460 oraz 51 innych luk. Użytkownik bazy danych, który może tworzyć obiekty, może uruchomić kod jako użytkownik systemu operacyjnego, na którym działa PostgreSQL. Należy zaktualizować serwer i rozszerzenia w języku C razem.
Alerty bezpieczeństwa ·
Node.js: luki HTTP/2 i HTTPS pozwalają klientom wywoływać awarie serwerów i odczytywać dane innych użytkowników
Node.js naprawił 16 podatności, z czego siedem oznaczono jako wysokie. Niezalogowani klienci mogą wywołać awarię serwerów HTTP/2 lub odczytać pamięć z innych połączeń, w tym klucze TLS. Poprawione wersje to 22.23.5, 24.22.3 i 26.13.1.