GitHub вводит трёхдневную паузу в Dependabot обновления

GitHub обновил поведение инструмента Dependabot: по умолчанию для обновлений версий теперь действует трёхдневная «пауза» перед созданием pull request. Механизм призван снизить риск цепочки атак через только что опубликованные вредоносные релизы библиотек.

Поводом для изменений стали инциденты с npm-пакетами. В сентябре 2025 года злоумышленник получил доступ к учётной записи одного из мейнтенеров npm и выложил вредоносные версии chalk, debug и ещё примерно десятка пакетов, которые суммарно скачивают более 2 млрд раз в неделю. Код подменял адреса криптокошельков в браузерных приложениях. Вредоносные версии оставались доступными около двух часов, пока сообщество не обнаружило проблему и npm не удалил их.

Именно такая временная «форточка» позволяет автоматическим инструментам обновления зависимостей сразу подхватывать свежий релиз, открывать pull request и приносить вредоносный код в проекты до того, как его успеют проверить люди или сканеры безопасности. По данным GitHub, значительная часть атак на цепочку поставок строится на этом паттерне: первый вредоносный релиз быстро попадает в публичный реестр и в пайплайны сборки, а выявляют его обычно уже постфактум.

Введение паузы меняет ситуацию. Если подождать несколько дней перед установкой новой версии, у мейнтенеров, исследователей и автоматических систем появляется время обнаружить и удалить вредоносный релиз до того, как он попадёт в ваши pull request. Теперь для обычных (не связанных с безопасностью) обновлений Dependabot ждёт как минимум три дня после публикации релиза, прежде чем открыть запрос на обновление. Поведение по-прежнему можно настраивать через параметр cooldown в файле dependabot.yml.

Dependabot — встроенный инструмент GitHub для поддержки зависимостей в актуальном и безопасном состоянии. Он решает две разные задачи: обновляет версии и поднимает отдельные pull request для исправления уязвимостей. Новый трёхдневный интервал касается только обновлений версий, а не security-обновлений. Запросы, связанные с уязвимостями, создаются сразу, так как их задержка тормозила бы установку уже доступного исправления.

GitHub фиксирует похожий сценарий атак через GitHub Advisory Database, которая собирает данные об уязвимостях и вредоносных пакетах с открытым исходным кодом. За год, завершившийся в мае 2026 года, база опубликовала более 6500 предупреждений о вредоносных npm-пакетах против примерно 6200 годом ранее, то есть около 18 новых вредоносных пакетов в день. При этом вредоносные версии популярных библиотек обычно живут недолго: их публикуют, они быстро распространяются, а затем удаляются, как правило, в течение нескольких часов.

Анализ 21 заметного инцидента с 2018 по 2026 год показал один и тот же сценарий: вредоносные версии axios, Solana web3.js, ua-parser-js, Ledger Connect Kit и других популярных библиотек были удалены через несколько часов после публикации. Трёхдневная задержка отсекает большую часть таких краткоживущих релизов, не давая им попасть в проекты через автоматические обновления.

Выбор именно трёх дней — компромисс между скоростью и безопасностью: этого достаточно, чтобы миновать окно активности большинства подобных атак, но при этом не задерживать обновление зависимостей дольше, чем нужно. Некоторые участники сообщества уже самостоятельно пришли к такому же интервалу (некто использует и более длительные), поэтому новое поведение делает Dependabot ближе к привычным практикам разработчиков. В любом случае разработчики могут самостоятельно задать более длинный или короткий интервал через конфигурацию cooldown.

При этом трёхдневная пауза решает только одну конкретную задачу — блокирует быстрый сценарий «опубликовать — быстро распространить — быстро поймать». Она мало помогает против долгосрочных атак, связанных, например, с закладками, которые долго остаются незамеченными, саботажем со стороны мейнтенеров или компрометацией систем сборки. Задержка обновлений не должна заменять другие меры защиты.

GitHub рекомендует использовать cooldown как часть многоуровневой защиты. Дополнительные шаги включают фиксацию версий в lock-файлах, отключение install-скриптов в CI, ограничение прав токенов в пайплайнах, а также ручную проверку обновлений перед слиянием. Для отдельных сценариев, например различного времени ожидания для внутренних пакетов и публичных реестров, можно использовать расширенную конфигурацию Dependabot, описанную в документации.

Новый режим включён по умолчанию, то есть разработчикам не требуется менять настройки, чтобы воспользоваться им. При этом параметр можно подстроить под конкретный процесс разработки. GitHub приглашает делиться опытом использования новой функциональности в обсуждениях сообщества Dependabot.

Источник: материалы GitHub о Dependabot и безопасности цепочки поставок ПО.

Читать новости ИИ и технологий в Telegram.


Оцените статью
Gimal-Ai