КИБЕРБЕЗОПАСНОСТЬ

GitHub закрыл популярный сценарий атак через Actions и форки

С 18 июня 2026 года GitHub меняет actions/checkout и по умолчанию блокирует опасные pwn request-атаки в GitHub Actions.

✍️ Редакция iTech News | 24.06.2026 | ⏱ 5 мин | Источник: The Hacker News
🕵

С 18 июня 2026 года GitHub изменил поведение actions/checkout и начал по умолчанию блокировать типовые pwn request атаки в GitHub Actions. Для команд, которые держат CI/CD на GitHub и до сих пор без особой паранойи используют pull_request_target, это не косметический апдейт, а сигнал: привычный workflow теперь официально признан слишком удобной точкой входа для компрометации репозитория, секретов и токенов.

Речь идет об официальном экшене GitHub для загрузки репозитория в runner. Как пишет The Hacker News, в версии actions/checkout v7 появился встроенный отказ для одного из самых известных опасных паттернов: когда workflow запускается по событию pull_request_target, а затем подтягивает код из форка и фактически исполняет то, что прислал внешний контрибьютор. В таком сценарии вредоносный код может получить доступ к GITHUB_TOKEN, секретам и правам записи базового репозитория. GitHub уточняет, что защита срабатывает по умолчанию, если pull request пришел из форка и checkout пытается взять либо сам fork-репозиторий, либо ref вида refs/pull/<number>/head или refs/pull/<number>/merge, либо commit SHA, который указывает на head или merge-коммит такого pull request. Если автор workflow зачем-то хочет сохранить старое рискованное поведение, ему придется явно включить флаг allow-unsafe-pr-checkout=true.

Отдельно важны даты. Новый режим уже действует с 18 июня 2026 года для актуальной версии экшена. На 16 июля 2026 года GitHub запланировал бэкпорт в поддерживаемые мажорные версии. Иными словами, окно для спокойного игнора довольно короткое: если у компании накопились старые workflow, которые годами никто не трогал, шанс получить неожиданные падения сборок в июле вполне реален. Падать они будут не потому, что GitHub «сломал CI», а потому что раньше pipeline допускал опасную конструкцию, а теперь платформа перестала делать вид, что это обычная практика.

Почему именно pull_request_target стал главным антигероем этой истории, давно не секрет. Этот триггер изначально задумывался для доверенной автоматизации вокруг pull request: поставить лейбл, оставить комментарий, обновить метаданные проекта, запустить что-то административное. Проблема начинается в тот момент, когда такой workflow не ограничивается служебными действиями, а делает checkout кода из непроверенного форка. В отличие от обычного pull_request, событие pull_request_target выполняется в контексте базовой ветки репозитория и получает более привилегированное окружение. Для атакующего это почти подарок: достаточно прислать pull request с «невинным» изменением, внутри которого зашит вредоносный скрипт, и дождаться, пока workflow сам его скачает и выполнит с повышенными правами.

Этот риск уже давно вышел за пределы теоретических обсуждений в DevSecOps-чатах. GitHub прямо связывает изменение с реальными атаками на цепочку поставок. В материале упомянут самый заметный кейс последних месяцев: компрометация нескольких пакетов, связанных с билд-системой Nx, в рамках кампании s1ngularity. Там же названы инциденты с PostHog, TanStack и популярным пакетом для Emacs kubernetes-el/kubernetes-el. Общая логика у таких историй одна и та же: злоумышленник не ломает инфраструктуру в лоб, а использует доверие к автоматизации, которая сама подносит ему привилегии. Для бизнеса это особенно неприятный класс инцидентов: атакуют не production напрямую, а инженерную рутину, которую принято считать «внутренней кухней».

При этом обновление GitHub не стоит воспринимать как волшебную таблетку. Компания довольно честно очертила рамки защиты. Новый барьер работает только для checkout через actions/checkout и только для конкретного набора сценариев, где фигурируют pull_request_target и частично workflow_run, если тот был вызван событиями семейства pull_request*. Если кто-то тянет недоверенный код другими способами, например через git, GitHub CLI или иной action, защита не поможет. Более того, GitHub отдельно подчеркивает: checkout любого недоверенного репозитория в привилегированном workflow все равно остается риском, даже если это не форк текущего проекта. Иначе говоря, платформа поставила guardrail на самый частый маршрут аварии, но не отменила необходимость думать головой.

Для разработчиков и платформенных команд практический вывод довольно приземленный. Во-первых, стоит пересмотреть все workflow, где используется pull_request_target, и проверить, действительно ли ему нужны секреты, права записи или доступ к OIDC-публикации. Во-вторых, если повышенные права не нужны, GitHub рекомендует переходить на pull_request как на менее опасный триггер. В-третьих, даже в доверенных сценариях полезно ужать permissions до минимума, а логику, завязанную на пользовательский ввод, изолировать так, чтобы она не приводила к исполнению произвольного кода. Для крупных команд это еще и организационный вопрос: где-то понадобится инвентаризация всех Actions-репозиториев, где-то аудит шаблонов, а где-то банально придется объяснить разработчикам, почему старый удобный workflow теперь не проходит.

Для русскоязычного рынка здесь есть отдельный подтекст. Многие компании в регионе по-прежнему используют GitHub как внешний контур разработки, даже если production и часть внутренних сервисов давно мигрировали в другие среды. В таких условиях CI/CD часто живет по принципу «работает и не трогай», а security-практики заметно отстают от темпа релизов и роста команды. История с pwn request атаками неприятна именно тем, что не требует экзотической уязвимости нулевого дня: достаточно сочетания неудачного триггера, чрезмерных прав и автоматизации, которая без проверки исполняет чужой код. Поэтому новость важна не только для security-инженеров, но и для тимлидов, DevOps, владельцев платформ и CTO, которые отвечают за supply chain риск, но редко смотрят на YAML-файлы в репозиториях как на полноценную поверхность атаки.

Дальше интересен уже не сам патч, а то, как быстро экосистема начнет воспринимать workflow-конфигурации как код с тем же уровнем критичности, что и приложение или инфраструктурные манифесты. Пока GitHub закрывает самый шумный сценарий, рынок получает менее комфортный, но более честный стандарт: если pipeline умеет деплоить, публиковать пакеты и читать секреты, значит, его надо ревьюить как привилегированный компонент, а не как техническое приложение к pull request.

Поделиться: Telegram X LinkedIn