Авторы бесплатного инструмента для разработчиков Git — GitHub, GitLab и Microsoft VSTS — закрыли две бреши в своем продукте. По словам исследователей, наиболее серьезным из них является баг CVE-2018-11235, позволяющий удаленно выполнить код. Дыра в защите была обнаружена ИБ-аналитиком Этьеном Сталмансом (Etienne Stalmans) в рамках программы bug-bounty, организованной GitHub.

Уязвимость позволяет атакующему внедрять в репозиторий специально сформированный подмодуль, который дает возможность исполнения вредоносного кода каждый раз, когда пользователь клонирует хранилище. К этому приводит некорректная проверка имен подмодулей небезопасного файла .gitmodules при включении их в директорию $GIT_DIR/modules.

Основная опасность заключается в том, что вредоносный подмодуль позволяет злоумышленникам похищать данные, внедрять майнеры криптовалюты или полностью перехватывать контроль над целевой машиной, на которой исполняется репозиторий Git или его клон.

Второй баг, CVE-2018-11233, может привести к чтению памяти за границами массива. По словам старшего специалиста по безопасности компании Veracode Тима Джарретта (Tim Jarrett), обе уязвимости необычны, поскольку позволяют атаковать не разрабатываемое ПО, а сам инструмент разработки.

Сотрудник Microsoft Visual Studio Эдвард Томсон (Edward Thomson) рассказал об изменениях, вошедших в патч. По его словам, разработчики Git внедрили более строгий механизм анализа имен объектов в подмодулях. Теперь названия не могут включать последовательность «‘..'» в качестве обозначения сегмента пути, а также символьные ссылки. Кроме того, сами папки должны находиться в директории .gitrepository, а не в рабочем пространстве репозитория.

В целях защиты клиентов, которые еще не успели применить обновления, Git заблокирует всю работу с содержащими подозрительные файлы репозиториями, а провайдеры будут запрещать их публикацию.

Над патчами работало сразу несколько ИБ-экспертов, закрывать уязвимости придется не только хостинговым сервисам, но и отдельным разработчикам. Кроме этих исправлений также было выпущено обновление для серверной части, которое выявляет репозитории, распространяющие вредоносные файлы .gitmodules.

Категории: Кибероборона, Уязвимости