Уязвимость в GitHub Actions, допускающая подстановку команд

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
04-Ноя-2020 14:30

Компания Google раскрыла информацию о методе эксплуатации уязвимости (CVE-2020-15228) в механизме GitHub Actions, предназначенном для прикрепления обработчиков для автоматизации различных операций в GitHub. Например, при помощи GitHub Actions можно выполнить определённые проверки и тесты при совершении коммитов или автоматизировать обработку новых Issues. Уязвимость вызвана тем, что обмен командами между процессом запуска Action и запускаемым действием (Action) производится через стандартный поток (STDOUT) - Actions Runner парсит стандартный поток, формируемый в процессе выполнения действий, и выделяет в нём маркеры команд "##[command parameter1=data;]command-value...".
Проблема в том, что некоторые обработчики действий допускают передачу через тот же стандартный поток сторонних данных, например, передают через стандартный поток заголовок Issue или данные из коммитов. Злоумышленник может воспользоваться этой особенностью и осуществить подстановку своих команд, которые будут обработаны в Actions Runner. В частности, при помощи команды "set-env" можно выставить любую переменную окружения, в том числе определить переменную "NODE_OPTIONS" и организовать выполнение своего кода во время обработки действия в Node.js.
Например, проект VSCode запускает действие
CopyCat для копирования новых issue в другой репозиторий. CopyCat выводит содержимое issue.title в stdout,
что позволяет атаковать систему, на которой выполняется Actions Runner, через создание issue c заголовком вида "##[set-env
name=NODE_OPTIONS;]--experimental-modules
--experimental-loader=data:text/javascript,....".
1 октября GitHub сообщил о переводе в разряд устаревших наиболее опасных команд "set-env" и "add-path" и выпустил обновление npm-пакета @actions/core, в который было добавлено предупреждение о возможных проблемах. Полное устранение уязвимости было намечено на 2 ноября, но GitHub не успел подготовить изменение и попросил у выявивших проблему исследователей сдвинуть ранее намеченную дату раскрытия информации (GitHub был уведомлен о проблеме ещё в июле). Google Project Zero отказался от смещения даты, так как до этого уже было предоставлено 14 дополнительных дней сверх срока, и опубликовал детали в изначально намеченный день.
GitHub оперативно выпустил обновление Actions Runner 2.273.6, в котором заблокировал упомянутую в прототипе эксплоита команду "set-env", но другие 13 поддерживаемых команд остаются незаблокированными (т.е. пока устранён лишь один их частных случаев, но сама проблема остаётся и потенциально для атаки могут быть использованы другие команды). Для организации установки переменных окружения преложено использовать промежуточные файлы.
===========
Источник:
OpenNet.RU
===========

Похожие новости: Теги для поиска: #_github
Профиль  ЛС 
Показать сообщения:     

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы

Текущее время: 22-Ноя 23:31
Часовой пояс: UTC + 5