23.06.2021

Уязвимость в 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 и добиться выполнения произвольного кода в системе.

Источник.