Microsoft отключила более 70 своих открытых проектов на GitHub после обнаружения вредоносного кода
Червь Miasma внедрялся в инструменты для разработчиков — экосистему Azure Functions и Durable Task
Вредонос срабатывал в момент открытия заражённого репозитория в Claude Code, Gemini CLI, VS Code и Cursor
Это второй за месяц инцидент с одними и теми же проектами, что указывает на повторное заражение
Автоматика GitHub отключила 73 репозитория примерно за 105 секунд
Microsoft временно отключила десятки своих открытых проектов на GitHub: в код репозиториев попал вредонос, ворующий пароли, токены и другие учётные данные разработчиков. Массовая блокировка началась 5 июня 2026 года около 19:00 МСК — автоматика GitHub отключила 73 репозитория примерно за 105 секунд.
Источник изображения — techcrunch.com
Большая часть затронутых проектов относится к облачной платформе Microsoft Azure, а также к инструментам, которые разработчики используют вместе с ИИ-ассистентами для написания кода — Claude Code, командным интерфейсом Gemini CLI, VS Code и Cursor.
Первыми тревогу подняли компания по безопасности цепочек поставок Cloudsmith и сообщество по анализу вредоносного ПО OpenSourceMalware. По их данным, зловред забирал учётные данные в момент открытия скомпрометированного репозитория в среде разработки с ИИ. Это классическая атака на цепочку поставок: удар наносится не по конечному продукту, а по коду, который используется в сотнях других продуктов.
Какие проекты попали под блокировку
Отключённые репозитории были разбросаны по нескольким организациям Microsoft на GitHub — Azure, Azure-Samples и MicrosoftDocs. Под раздачу попали:
- хост Azure Functions и связанные с ним компоненты;
- репозитории GitHub Actions для развёртывания приложений Azure Functions, включая Azure/functions-action;
- практически вся экосистема Durable Task — реализации для .NET, Go, Java, JS, MSSQL, Netherite и protobuf;
- монитор Durable Functions;
- среды выполнения, SDK, воркеры под конкретные языки, инструменты разработчика и расширения.
При попытке открыть страницу проекта пользователи видели сухое уведомление: «Доступ к этому репозиторию был отключён сотрудниками GitHub из-за нарушения условий использования GitHub».
Как устроен червь Miasma
Вредонос получил имя Miasma. Это самораспространяющийся похититель учётных данных, собранный на базе кода Mini Shai-Hulud, который в открытый доступ выложила группировка TeamPCP.
Вредоносный коммит приносил в репозиторий обфусцированный файл setup.js, файлы настроек с хуками для языковых моделей Claude и Gemini, а также файл задач для Visual Studio Code. Все они были заточены под одно: запустить JavaScript через node ровно в тот момент, когда разработчик откроет проект в инструменте с ИИ.
Ключевая деталь здесь — сам механизм срабатывания. Хуки и файлы задач исполняются автоматически, без явного согласия пользователя: они задуманы как удобство (подтянуть зависимости, настроить окружение при открытии проекта), но ровно эта автоматика и превращает открытие чужого репозитория в запуск чужого кода. Раньше для заражения требовалось хотя бы собрать проект.
Дальше начиналось самое неприятное. Украв токены, Miasma пытался прописать бэкдоры в другие пакеты и репозитории, доступные из заражённого окружения. То есть компрометация одной машины разработчика могла превратиться в компрометацию десятков чужих проектов.
Отдельно стоит отметить вектор проникновения: вместо привычной подмены пакета в реестре злоумышленники заливали полезную нагрузку прямо в исходный код репозиториев. До Microsoft червь прошёлся по пространству имён @redhat-cloud-services в npm — там всё началось со взлома учётной записи сотрудника Red Hat. Через неотрецензированные orphan-коммиты в код внедрялся минимальный рабочий процесс, запрашивавший OIDC-токены GitHub. В результате пострадало более 90 версий npm-пакетов Red Hat, причём вредоносный код нёс полностью валидные подписи — сканеры, доверяющие подписанным пакетам, пропускали его без вопросов.
Второй заход: старая рана открылась заново
Это уже не первое столкновение Microsoft с Miasma за последние недели. 19 мая в репозиторий PyPI в течение 35 минут были залиты три вредоносные версии пакета durabletask — официального Python-SDK для Azure Durable Task. Версии 1.4.1, 1.4.2 и 1.4.3 появились без соответствующих тегов, релизов и запусков сборки в самом репозитории. Масштаб потенциального ущерба солидный: пакет собирает порядка 417 000 загрузок в месяц.
Исследователи из Wiz, Endor Labs и StepSecurity связали ту атаку с украденными секретами GitHub Actions и всё той же группировкой TeamPCP.
Источник изображения — techcrunch.com
В OpenSourceMalware июньский инцидент называют повторной компрометацией проекта Durable Task. Логика простая: месяцем ранее пострадал репозиторий Azure/durabletask, а теперь легла вся экосистема вокруг него. В Cloudsmith считают, что учётные данные, с помощью которых злоумышленники зашли в мае, так и не были полностью отозваны и заменены. Официального подтверждения этой версии пока нет — не исключён и вариант с полностью новым, независимым взломом.
Что говорит Microsoft
Компания подтвердила удаление репозиториев. Представитель Microsoft Бен Хоуп сообщил, что корпорация «временно удалила некоторые репозитории в рамках расследования потенциально вредоносного контента»: «Некоторые из этих репозиториев были восстановлены после проверки, в то время как другие могут оставаться недоступными до завершения работы».
«В рамках расследования мы уведомили небольшое количество клиентов, которые могли загрузить контент из затронутых репозиториев. Мы продолжим расследование, и если будут выявлены дополнительные действия, требующие реакции клиентов, мы свяжемся напрямую через установленные каналы поддержки», — добавил он. Точное число пострадавших пользователей компания не раскрыла. Позднее большинство репозиториев вернулись в строй.
Побочный эффект: сломанные развёртывания
Отключение репозиториев ударило по тем, кто использует затронутые GitHub Actions. Пользователи Azure/functions-action сообщали, что конвейеры развёртывания перестали запускаться — нужный экшен просто пропал. В качестве временного обходного пути Microsoft предложила разворачивать приложения через Azure CLI, Azure DevOps Pipelines, VS Code или Zip Deploy.
Эпизод наглядно показал побочный риск удобных цепочек сборки: экшен, подключённый по имени ветки, а не по конкретному хешу коммита, — это внешняя зависимость, способная исчезнуть посреди рабочего дня. Закрепление версии по хешу решает сразу обе проблемы: и подмену кода, и внезапную пропажу.
Что делать разработчикам
Если за последний месяц вы забирали что-то из репозиториев Azure — особенно functions-action или durabletask — имеет смысл провести ревизию:
- проверить уведомления GitHub на предмет писем от Microsoft о возможной загрузке заражённого контента;
- перевыпустить все токены, которые использовались в ИИ-инструментах для написания кода: персональные токены GitHub, ключи облачных провайдеров, API-ключи;
- проверить конфигурации проектов на посторонние файлы — обфусцированный setup.js, хуки в настройках Claude и Gemini, задачи в .vscode/tasks.json;
- пересмотреть версии зависимостей: пакет durabletask версий 1.4.1–1.4.3 устанавливать не стоит;
- ограничить права GitHub Actions и включить обязательное ревью для коммитов в защищённые ветки;
- открывать незнакомые репозитории в изолированном окружении — контейнере или виртуальной машине, а не в основной рабочей системе.
Атаки на цепочку поставок бьют по разработчикам всё чаще, и главный вывод этой истории неприятен: под удар попал не одиночный сопровождающий открытого проекта, а корпорация с одной из самых мощных служб безопасности в индустрии. А связка «ИИ-ассистент плюс широкие права в окружении разработчика» превращается в новый и очень удобный для атакующих вектор — достаточно просто открыть заражённый проект.














