Критическая RCE-уязвимость в GitHub позволяла выполнять код через git push и затрагивала миллионы репозиториев — ИИ для бизнеса

Критическая RCE-уязвимость в GitHub позволяла выполнять код через git push и затрагивала миллионы репозиториев

Прослушать статью

Исправленная уязвимость позволяла аутентифицированным пользователям выполнять произвольный код через специально сформированные запросы git push в GitHub.com и GitHub Enterprise Server.

Критическая уязвимость удаленного выполнения кода (RCE) в GitHub могла позволить злоумышленникам выполнять произвольный код на GitHub.com и GitHub Enterprise Server.

Баг, обнаруженный исследователями Wiz и уже исправленный, использовал особенности обработки серверных операций «git push» в GitHub. Сформировав вредоносный ввод внутри обычного Git push, аутентифицированный пользователь мог выполнить произвольные команды через внутренний Git-пайплайн GitHub.

В GitHub признали серьезность находки, а CISO Alexis Wales отметила: «Находка такого уровня и такой серьезности встречается редко и заслуживает одной из самых высоких наград в нашей программе Bug Bounty».

GitHub исправила проблему в GitHub.com и в течение нескольких часов выпустила патчи для всех поддерживаемых версий GitHub Enterprise Server. Однако Wiz сообщила, что на момент публичного раскрытия уязвимыми в интернете оставались 88% экземпляров Enterprise Server.

Ошибочная обработка git push в GitHub

Уязвимость, отслеживаемая как CVE-2026-3854, была связана с тем, как GitHub обрабатывает запросы git push в своей серверной Git-инфраструктуре. По данным Wiz, проблема затрагивала внутренний компонент X-STAT, который находится на пути серверной обработки операций Git.

Исследователи Wiz выяснили, что специально подготовленный git push мог передавать в X-STAT вредоносно структурированный ввод, который обрабатывался небезопасно до попадания в выполнение команд на backend-уровне. Поскольку эта обработка происходит на сервере как часть обычной логики GitHub по работе с событиями репозитория, ввод мог влиять на то, как команды формировались или выполнялись в этом пайплайне.

Уязвимость получила почти критическую оценку CVSS — 8,8 из 10 — и была исправлена в версиях GitHub Enterprise Server 3.14.25 по 3.20.0. GitHub классифицировала проблему как «command injection», возникшую из-за «недостаточной нейтрализации специальных элементов, используемых в команде».

Сообщается, что при поиске этой уязвимости использовали AI-инструмент для реверс-инжиниринга IDA MCP. «Это одна из первых критических уязвимостей, обнаруженных в закрытых бинарных файлах с помощью AI, что подчеркивает сдвиг в том, как такие ошибки выявляются», — сказал исследователь Wiz Sagi Tzadik в блоге. «Несмотря на сложность базовой системы, уязвимость удивительно легко эксплуатируется».

Полный захват в рамках нескольких арендаторов

В своем анализе Wiz подробно описала, как проблему можно было повысить от начального выполнения команд до полного удаленного выполнения кода на затронутых системах.

«В GitHub.com эта уязвимость позволяла удаленное выполнение кода на общих узлах хранения. Мы подтвердили, что на затронутых узлах были доступны миллионы публичных и приватных репозиториев, принадлежащих другим пользователям и организациям», — сказал Tzadik, добавив, что для self-hosted-сред последствия были еще серьезнее. В GitHub Enterprise Server уязвимость давала полный захват сервера, включая доступ ко всем размещенным репозиториям и внутренним секретам.

Материал впервые опубликован в CSO.


Материал — перевод статьи с английского.

Оригинал: Critical GitHub RCE bug exposed millions of repositories