Обновление Git с устранением уязвимостей
Как сообщает opennet.ru Представлены корректирующие выпуски всех поддерживаемых веток системы управления исходными текстами Git (2.17.1, 2.13.7, 2.14.4, 2.15.2, 2.16.4), в которых устранены две уязвимости, одна из которых может быть использована для запуска кода злоумышленника при обращении к вредоносному репозиторию. Обновления пакетов с устранением проблемы выпущены для Debian и Fedora, и ожидаются для RHEL, Ubuntu и SUSE.
- CVE-2018-11235 - возможность выхода за границы базового каталога репозитория через использование символов "../" в относительном пути к субмодулю, определенному в файле ".gitmodules". Штатно субмодули размещаются внутри собственного каталога.git/modules/, но благодаря уязвимости имеется возможность выхода за его пределы при выполнении операции извлечения субмодуля.
При обращении пользователя к контролируемому злоумышленником репозиторию возможна организация атаки по созданию/переписи файла вне каталога ".git" с правами текущего пользователя. Атака может быть доведена до запуска кода на сервере при рекурсивном клонировании вредоносного репозитория, например, через подстановку скрипта post-checkout в файл.git/config. Для эксплуатации уязвимости клиент обязательно должен выполнить "git clone --recurse-submodules" или "git clone --recursive", при простом клонировании без субмодулей проблема не проявляется; - CVE-2018-11233 - чтение случайных частей памяти процесса git через создание в файловой системе NTFS специально оформленных путей.
Дополнительно в новых выпусках добавлена возможность блокирования на стороне сервера push-операций с попыткой создания проблемного файла.gitmodules в качестве превентивной меры защиты от добавления вредоносных репозиториев в системах совместного хостинга кода. Режим блокировки включается наряду с другими мерами усиления защиты при наличии параметра receive.fsckObjects в настройках на стороне сервера. Например, ранее подобным образом уже было запрещено создание каталога ".GIT" с изменением регистра символов.