[AKTUALIZACJA] Poważny błąd we wszystkich wersjach Gita do 2.7.3 włącznie!

dodał 16 marca 2016 o 09:54 w kategorii Błędy  z tagami:
[AKTUALIZACJA] Poważny błąd we wszystkich wersjach Gita do 2.7.3 włącznie!

(źródło: fastjack)

Jeśli korzystacie z narzędzia Git do kontroli wersji oprogramowania to upewnijcie się, ze zaktualizowaliście je zarówno po stronie klienta jak i serwera. Od kilku tygodni znany jest błąd umożliwiający zdalne wykonanie kodu.

Wczoraj na liście oss-sec poinformowano o istnieniu błędu typu buffer overflow we wszystkich wersjach Gita starszych niż 2.7.1 (czyli istniał od wielu lat) zarówno po stronie serwera jak i klienta (CVE-2016-2324 i  CVE-2016-2315). Błąd związany jest z nieprawidłowym przetwarzaniem zbyt długich nazw plików lub struktur katalogów. Informacja o błędzie pojawiła się na początku lutego na liście mailingowej poświęconej bezpieczeństwu projektu Git, lecz mimo szybkiej aktualizacji kodu niewiele osób zwróciło na nią uwagę i nadal prawie wszyscy korzystali z podatnych wersji. 6 marca podatny kod został umieszczony na Pastebinie. Nie widzieliśmy kodu exploita, ale można się spodziewać że nie będzie trzeba na niego długo czekać.

Git

Git

Błąd jest o tyle poważny, że dotyczy bardzo popularnego narzędzia, szeroko stosowanego przez programistów i obecnego w chyba wszystkich dystrybucjach linuksowych (listę podatnych wersji opublikował już Debian). Serwisy takie jak GitLab czy GitHub zaktualizowały swój kod, jednak dystrybucje Linuksa do tej pory nie spieszyły się z aktualizacjami.

Aby błąd wywołać po stronie serwera trzeba wysłać do niego odpowiednio spreparowane repozytorium, co nieco ogranicza powierzchnię ataku ponieważ w wielu przypadkach wymaga wcześniejszego uwierzytelnienia. Po stronie klienta błąd wywołuje próba sklonowania spreparowanego repozytorium.

Więcej o samym błędzie możecie poczytać w tym artykule, ale najpierw zalecamy aktualizację Gita do wersji 2.7.3.

Aktualizacja: Niestety okazuje się, że aktualna wersja Gita, 2.7.3 również jest podatna na ten sam błąd. Odkrywca błędów, który dzisiaj powiadomił o nich świat, myślał, że skoro jest opracowana łata, to została ona już dołączona do projektu. Niestety był w błędzie i wersja 2.7.3 jest również podatna – łata nie została do tej pory uwzględniona w wydanych wersjach, znajduje się jednak w najnowszej wersji kodu źródłowego. Pozostaje zatem kompilować ze źródeł, jak zwierzęta ;)