Исследователи компании Socket обнаружили масштабную операцию, в которой злоумышленники используют не компьютеры жертв, а мощности самого GitHub. Атакующие скомпрометировали учётную запись разработчика dinushchathurya — автора вполне легитимных PHP-библиотек и инструментов для DevOps. Взлом произошёл 12–13 июля 2026 года, и как именно преступники получили доступ к аккаунту, пока неясно. Зато понятно, что они сделали дальше: вместо того чтобы менять код самих библиотек, они добавили в репозитории вредоносные workflow-файлы GitHub Actions.
Под удар попали сразу десять пакетов из репозитория Packagist: nationality-list, srilankan-divisional-secretariats, srilankan-gn-divisions, srilankan-local-authorities, srilankan-mobile-number-validator, srilankan-state-hospitals, srilankan-universities, uk-mobile-number-validator, uk-post-code и websmslk. Как видно по названиям, большая часть библиотек связана со Шри-Ланкой — справочники государственных структур, валидаторы телефонных номеров, списки университетов. Ничего, что вызвало бы подозрение у обычного разработчика, подключающего зависимость через composer.
Механизм атаки устроен хитро. Сама PHP-библиотека остаётся чистой — вредонос прячется не в коде, который попадает на сервер пользователя, а в workflow-файлах репозитория. При пуше в репозиторий или ручном запуске workflow срабатывает триггер, который запускает раннеры, размещённые на инфраструктуре самого GitHub. Эти раннеры скачивают Linux-полезную нагрузку с серверов злоумышленников и пытаются эксплуатировать CVE-2026-41940 — уязвимость обхода аутентификации, дающую удалённому атакующему повышенный контроль над панелями управления cPanel и WHM.
Полезная нагрузка после успешной эксплуатации собирает практически всё, что может пригодиться для дальнейших атак: учётные данные, конфигурационные файлы, переменные окружения, доступ к базам данных, SSH-ключи, git-токены, облачные ключи, данные платёжных сервисов. В списке украденного — токены AWS, GitHub и GitLab, ключи API OpenAI и Google, ключи Stripe, доступы к SendGrid и Mailgun, а также результаты удалённого выполнения кода. Это не точечная кража одного пароля, а системный сбор всего, что открывает дорогу к следующим целям.
Масштаб впечатляет сам по себе: в каждой скомпрометированной версии пакета исследователи насчитали от 55 до 62 вредоносных workflow-файлов, а суммарно по всем десяти пакетам — 583 файла. Раннеры проверяют архитектуру целевой системы и подстраиваются под 32-битные и 64-битные x86 и ARM-процессоры, то есть атака рассчитана на широкий спектр серверного оборудования. Все скомпрометированные workflow непрерывно отчитываются о ходе выполнения на управляющий сервер по IP-адресу 43.228.157.68 через HTTP POST-запросы.
Кирилл Бойченко, исследователь Socket, описал суть находки так: «Мы наблюдаем за тем, как инфраструктура, созданная для автоматизации сборки и тестирования кода, без каких-либо изменений превращается в готовую платформу для сканирования и взлома удалённых серверов — и всё это происходит на бесплатных мощностях GitHub, а не на машинах жертв».
Отдельного внимания заслуживает то, что случай с dinushchathurya — не единичный инцидент. Аналитики нашли около 6 100 workflow-файлов на GitHub, объединённых общим идентификатором DNSHook: f5b0b742-240a-4811-8a5b-b0ba6060685d. Это говорит о том, что кампания вышла далеко за пределы одной скомпрометированной учётной записи и одного набора PHP-пакетов — вероятно, речь идёт о куда более широкой инфраструктуре атак, построенной по одному шаблону.
Ключевое отличие этой схемы от классических атак на цепочку поставок в том, что она вообще не требует установки скомпрометированного пакета конечным пользователем. Сканирование и эксплуатация целиком проходят на раннерах, размещённых GitHub, — площадка для сборки кода становится атакующей платформой сама по себе.
Та же компания Socket описала вторую, параллельную кампанию — «Operation Muck and Load», нацеленную уже на пользователей Windows. Она затронула около 200 репозиториев GitHub и 190 учётных записей. Репозитории маскируются под утилиты для разработчиков и интеграции с криптовалютными кошельками, а на деле раздают целый набор вредоносного ПО: инфостилеры, загрузчики и дропперы, шпионское ПО, трояны удалённого доступа (RAT) и майнеры Monero.
Цепочка заражения устроена в несколько этапов. Вредоносная нагрузка либо встроена прямо в исходный код репозитория, либо распространяется через релизные файлы GitHub. Далее скачивается PowerShell-скрипт, который обращается к так называемым «мёртвым точкам» — сервисам вроде Pastebin, Rlim, Telegram, YouTube, И⃰, Google Docs и Gitcode. Оттуда скрипт получает ссылку на защищённый паролем архив, размещённый уже на самом GitHub, — и именно из него извлекается и запускается основная вредоносная программа.
По тактическим приёмам эта операция пересекается с активностью, которую компания Trend Micro отслеживает под именем Water Curse. Кластер связан с конкретным электронным адресом и управляет обширной «призрачной сетью» репозиториев на GitHub, перенаправляющей ничего не подозревающих пользователей на страницы GitHub Pages с заражёнными файлами. Расчёт делается на людей, готовых запускать непроверенные инструменты — автоматизацию для криптовалют, утилиты для кошельков, читы для игр, крипторы и инструменты для offensive security. По сути, любой поиск бесплатного софта на GitHub рискует обернуться установкой вредоносной программы вместо обещанного инструмента.
Под удар попали сразу десять пакетов из репозитория Packagist: nationality-list, srilankan-divisional-secretariats, srilankan-gn-divisions, srilankan-local-authorities, srilankan-mobile-number-validator, srilankan-state-hospitals, srilankan-universities, uk-mobile-number-validator, uk-post-code и websmslk. Как видно по названиям, большая часть библиотек связана со Шри-Ланкой — справочники государственных структур, валидаторы телефонных номеров, списки университетов. Ничего, что вызвало бы подозрение у обычного разработчика, подключающего зависимость через composer.
Механизм атаки устроен хитро. Сама PHP-библиотека остаётся чистой — вредонос прячется не в коде, который попадает на сервер пользователя, а в workflow-файлах репозитория. При пуше в репозиторий или ручном запуске workflow срабатывает триггер, который запускает раннеры, размещённые на инфраструктуре самого GitHub. Эти раннеры скачивают Linux-полезную нагрузку с серверов злоумышленников и пытаются эксплуатировать CVE-2026-41940 — уязвимость обхода аутентификации, дающую удалённому атакующему повышенный контроль над панелями управления cPanel и WHM.
Полезная нагрузка после успешной эксплуатации собирает практически всё, что может пригодиться для дальнейших атак: учётные данные, конфигурационные файлы, переменные окружения, доступ к базам данных, SSH-ключи, git-токены, облачные ключи, данные платёжных сервисов. В списке украденного — токены AWS, GitHub и GitLab, ключи API OpenAI и Google, ключи Stripe, доступы к SendGrid и Mailgun, а также результаты удалённого выполнения кода. Это не точечная кража одного пароля, а системный сбор всего, что открывает дорогу к следующим целям.
Масштаб впечатляет сам по себе: в каждой скомпрометированной версии пакета исследователи насчитали от 55 до 62 вредоносных workflow-файлов, а суммарно по всем десяти пакетам — 583 файла. Раннеры проверяют архитектуру целевой системы и подстраиваются под 32-битные и 64-битные x86 и ARM-процессоры, то есть атака рассчитана на широкий спектр серверного оборудования. Все скомпрометированные workflow непрерывно отчитываются о ходе выполнения на управляющий сервер по IP-адресу 43.228.157.68 через HTTP POST-запросы.
Кирилл Бойченко, исследователь Socket, описал суть находки так: «Мы наблюдаем за тем, как инфраструктура, созданная для автоматизации сборки и тестирования кода, без каких-либо изменений превращается в готовую платформу для сканирования и взлома удалённых серверов — и всё это происходит на бесплатных мощностях GitHub, а не на машинах жертв».
Отдельного внимания заслуживает то, что случай с dinushchathurya — не единичный инцидент. Аналитики нашли около 6 100 workflow-файлов на GitHub, объединённых общим идентификатором DNSHook: f5b0b742-240a-4811-8a5b-b0ba6060685d. Это говорит о том, что кампания вышла далеко за пределы одной скомпрометированной учётной записи и одного набора PHP-пакетов — вероятно, речь идёт о куда более широкой инфраструктуре атак, построенной по одному шаблону.
Ключевое отличие этой схемы от классических атак на цепочку поставок в том, что она вообще не требует установки скомпрометированного пакета конечным пользователем. Сканирование и эксплуатация целиком проходят на раннерах, размещённых GitHub, — площадка для сборки кода становится атакующей платформой сама по себе.
Та же компания Socket описала вторую, параллельную кампанию — «Operation Muck and Load», нацеленную уже на пользователей Windows. Она затронула около 200 репозиториев GitHub и 190 учётных записей. Репозитории маскируются под утилиты для разработчиков и интеграции с криптовалютными кошельками, а на деле раздают целый набор вредоносного ПО: инфостилеры, загрузчики и дропперы, шпионское ПО, трояны удалённого доступа (RAT) и майнеры Monero.
Цепочка заражения устроена в несколько этапов. Вредоносная нагрузка либо встроена прямо в исходный код репозитория, либо распространяется через релизные файлы GitHub. Далее скачивается PowerShell-скрипт, который обращается к так называемым «мёртвым точкам» — сервисам вроде Pastebin, Rlim, Telegram, YouTube, И⃰, Google Docs и Gitcode. Оттуда скрипт получает ссылку на защищённый паролем архив, размещённый уже на самом GitHub, — и именно из него извлекается и запускается основная вредоносная программа.
По тактическим приёмам эта операция пересекается с активностью, которую компания Trend Micro отслеживает под именем Water Curse. Кластер связан с конкретным электронным адресом и управляет обширной «призрачной сетью» репозиториев на GitHub, перенаправляющей ничего не подозревающих пользователей на страницы GitHub Pages с заражёнными файлами. Расчёт делается на людей, готовых запускать непроверенные инструменты — автоматизацию для криптовалют, утилиты для кошельков, читы для игр, крипторы и инструменты для offensive security. По сути, любой поиск бесплатного софта на GitHub рискует обернуться установкой вредоносной программы вместо обещанного инструмента.