Уязвимость в Git для Cygwin, позволяющая организовать выполнение кода

В Git выявлена критическая уязвимость (CVE-2021-29468), проявляющаяся только при сборке для окружения Cygwin (библиотека для эмуляции базового Linux API в Windows и набор типовых linux-программ для Windows). Уявзимость позволяет выполнить код злоумышленника при извлечении данных («git checkout») из репозитория, подконтрольного атакующему. Проблема устранена в пакете git 2.31.1-2 для Cygwin, в основной кодовой базе Git проблема пока не исправлена (маловероятно, что кто-то своими руками собирает git для Cygwin, а не использует готовый пакет).

Уязвимость вызвана обработкой окружения Cygwin как Unix-подобной системы, а не Windows, что приводит к отсутствию ограничений на использование символа » в пути, в то время как в Cygwin, как и в Windows, данный символ может использоваться для разделения каталогов. В итоге, через создание специально модифицированного репозитория, содержащего символические ссылки и файлы с символом обратного слеша, можно добиться перезаписи произвольных файлов при загрузке данного репозитория в Cygwin (в Git для Windows аналогичная уязвимость была исправлена в 2019 году). Получив возможность перезаписи файла, атакущий может переопределить hook-вызовы в git и добиться выполнения произвольного кода в системе.

Источник: http://www.opennet.ru/opennews/art.shtml?num=55027