Реальность накрыла 4 марта 2026-го: обнаружена критическая уязвимость удалённого выполнения кода, которая могла превратить обычный пуш кода в серверный эксплойт.
Это был не какой-то редкий кейс — под удар попали github.com, GitHub Enterprise Cloud во всех конфигурациях и GitHub Enterprise Server. За меньше чем два часа команда безопасности GitHub подтвердила проблему, запатчила прод и запустила глубокий форензик. То, что они раскопали, и их реакция — отличный кейс по управлению современными инцидентами безопасности.
Как работал эксплойт
Всё упиралось в обработку опций git push, которые поставляет пользователь. Это легитимная фича Git: клиенты передают серверу кастомные пары ключ-значение. Проблема? Внутренний протокол метаданных GitHub, который таскает инфу о пуше между сервисами, использовал разделитель, который мог просочиться из пользовательского ввода.
Получилась дыра размером с ворота. Нападающий с правами пуша в репозиторий — даже свежесозданный — мог подсунуть сработанные опции. Эти инъекции маскировались под легитимные метаданные и дурили downstream-сервисы. Представьте: невинный git push --set-upstream origin main --option='key=value' становится лазейкой. Цепочкой таких инъекций атакующий переписывал окружение выполнения, обходил песочницу — и бац — запускал любой код на сервере GitHub.
Уязвимость крылась в обработке пользовательских опций git push внутри метаданных. Опции — это штатная фича git, позволяющая слать на сервер пары ключ-значение при пуше. Но значения от юзера вливались в метаданные без должной санитизации.
Такой уровень доступа — ночной кошмар для любой платформы. Он пробивал все обычные предохранители, целясь в саму точку входа изменений кода.
Реакция на скорости света
Не менее впечатляет скорость реакции GitHub — почти не уступает самой уязвимости. После баунти-репорта 4 марта команда воспроизвела баг за 40 минут. К 17:45 UTC локализовали корень зла. Патч — критическая санитизация пользовательских опций — улетел на github.com к 19:00 UTC. Невероятный темп.
Для клиентов GitHub Enterprise Server подготовили патчи под все поддерживаемые релизы и выдали CVE (CVE-2026-3854). Совет был ясен: апгрейдить срочно.
Охота за призраками
Прод запатчен, но главный вопрос повис: успел ли кто-то этим воспользоваться до обнаружения? Расследование помогла уникальная черта эксплойта.
Он заставлял сервер шагать по кодовому пути, который никогда не используется в обычной работе GitHub.com. Баг был не скрытным — последствия инъекции трубили на всю систему. Логируя и шармя этот аномальный путь, GitHub точно установил: никаких несанкционированных актов не было. Телметрия чиста: все срабатывания пути — тесты от исследователей Wiz. Ни других юзеров, ни доступа к клиентским данным. Для Enterprise Server клиентам самим проверять логи доступа — эксплойт требовал аутентифицированного пуша на их инстансе.
Оборона вглубь: больше, чем патч
Помимо фикса анализ GitHub вытащил ключевой урок о defense in depth. Эксплойт сработал отчасти из-за опасного кодового пути, который болтался на диске в неподходящих окружениях. Старый метод развёртывания его исключал, но смена стратегии невзначай вернула.
Это про архитектурное мышление. Показывает, как далёкие конфиги систем рождают новые уязвимости. Убрав ненужный путь из лишних окружений, GitHub добавил ещё один слой защиты. Прагматика: латаем дыру, а заодно укрепляем периметр, чтоб похожие атаки в будущем спотыкались.
Что делать вам?
Пользователям GitHub Enterprise Server всё просто: апгрейдить. Разобраться с CVE-2026-3854 и накатить патчи на все релизы. Пройтись по логам доступа на предмет подозрительного — тоже не помешает.
Разработчикам в целом это напоминание с кулаком. Операция git push, которую мы шлём сотни раз в день на автомате, таит сложные риски. Понимать протоколы под капотом и как ваши вводы перетираются downstream — всегда было и будет критично. Инцидент не просто про баг: это яркий пример, как даже отлаженные инструменты требуют бдительности и глубокого понимания архитектуры.
FAQ
Что значит CVE-2026-3854 для юзеров GitHub Enterprise Server?
Юзеры с правами пуша в репозитории на вашем GHES могли запустить произвольный код на сервере. GitHub настоятельно рекомендует апгрейд на патченные версии.
Скомпрометированы ли мои данные на GitHub.com из-за этой уязвимости?
Нет. Расследование GitHub подтвердило: путь эксплойта сработал только у исследователей, клиентские данные не трогали.
Можно ли после фикса юзать git push options?
Да, опции остаются поддерживаемой фичей. Фикс гарантирует санитизацию пользовательских значений — инъекций не будет.