Исследователи компании 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 рискует обернуться установкой вредоносной программы вместо обещанного инструмента.