W Git wykryto krytyczną podatność (CVE-2021-29468), która występuje wyłącznie w kompilacjach dla środowiska Cygwin (biblioteka emulująca podstawowe API Linuksa w Windows oraz zestaw typowych narzędzi linuksowych dla Windows). Luka umożliwia wykonanie kodu przez atakującego podczas pobierania danych („git checkout”) z repozytorium kontrolowanego przez napastnika. Problem został usunięty w pakiecie git 2.31.1-2 dla Cygwin. W głównym projekcie Git błąd nie został jeszcze naprawiony (mało prawdopodobne, by ktoś samodzielnie kompilował git dla Cygwin zamiast korzystać z gotowego pakietu).
Podatność wynika z traktowania środowiska Cygwin jako systemu typu Unix, a nie Windows, co powoduje brak ograniczeń dotyczących użycia znaku ‘\’ w ścieżce, mimo że w Cygwin, podobnie jak w Windows, znak ten może służyć do rozdzielania katalogów. W efekcie, poprzez utworzenie specjalnie zmodyfikowanego repozytorium zawierającego dowiązania symboliczne i pliki ze znakiem odwrotnego ukośnika, można doprowadzić do nadpisania dowolnych plików podczas pobierania takiego repozytorium w Cygwin (w Git dla Windows analogiczna podatność została usunięta w 2019 roku). Uzyskując możliwość nadpisywania plików, atakujący może podmienić wywołania hooków w git i doprowadzić do wykonania dowolnego kodu w systemie.
Źródło: opennet.ru
