1 июня 2026 года специалисты компании StepSecurity, занимающейся защитой конвейеров разработки, обнаружили в реестре пакетов npm восемь вредоносных версий библиотек, принадлежащих экосистеме Red Hat Cloud Services. Атака оказалась необычной: злоумышленники скомпрометировали сам процесс публикации пакетов через систему непрерывной интеграции и доставки (CI/CD) на платформе GitHub Actions. Теперь любой разработчик, выполняющий команду npm install для одной из затронутых библиотек, запускает на своей машине или сервере скрытый сборщик учетных данных.
Описание
Все восемь пакетов входили в пространство имён @redhat-cloud-services. Среди них, например, библиотека @redhat-cloud-services/host-inventory-client. Её легитимная версия занимает около 200 килобайт, тогда как вредоносная версия 5.0.3 распаковывается в 5,27 мегабайта. Такое резкое увеличение произошло из-за инъекции в файл index.js 4,2 мегабайта обфусцированного кода. Этот код срабатывает автоматически на этапе предустановки (так называемом preinstall hook), что указано в файле package.json: скрипт node index.js выполняется без какого-либо явного импорта или вызова. Достаточно простого npm install, чтобы полезная нагрузка активировалась.
Вредоносная полезная нагрузка представляет собой многоступенчатый сборщик учетных данных. По данным анализа StepSecurity, код пытается извлечь секреты из различных сервисов и облачных платформ: GitHub Actions (токены и секреты окружения), Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure, а также из систем управления секретами HashiCorp Vault, кластеров Kubernetes, токенов npm и CircleCI. Кроме того, полезная нагрузка содержит механизмы обхода некоторых средств защиты, в частности пытается избежать обнаружения системой StepSecurity Harden-Runner. Сейчас специалисты продолжают детальный анализ остальных семи пакетов, восстанавливая зашифрованные адреса командных серверов (C2) и выявляя дополнительные индикаторы компрометации.
Примечательно, что все вредоносные версии были опубликованы через механизм OIDC (открытый протокол аутентификации на основе OpenID Connect) с использованием учётной записи npm-oidc-no-reply@github.com. Эта учётная запись привязана к официальному репозиторию RedHatInsights/javascript-clients. Такой способ публикации указывает на то, что злоумышленникам удалось скомпрометировать либо сами конвейеры GitHub Actions этого репозитория, либо настройки доверия OIDC, позволяющие выполнять публикацию от имени репозитория. Уведомление об уязвимости было направлено в репозиторий RedHatInsights/javascript-clients под номером #492, и сейчас специалисты StepSecurity совместно с мейнтейнерами проекта выясняют масштаб компрометации конвейера и координируют удаление вредоносных версий.
Последствия такой атаки могут быть крайне серьёзными. Если разработчик, использующий один из затронутых пакетов, устанавливает его в окружении, где хранятся секреты облачных провайдеров или токены доступа к критическим системам, злоумышленник получает возможность удалённо захватить контроль над инфраструктурой. Это особенно опасно для компаний, применяющих конвейеры непрерывной поставки, где секреты автоматически передаются в окружения сборки. Поскольку пакеты принадлежат официальному пространству Red Hat Cloud Services, атака могла затронуть множество организаций, доверяющих этому источнику.
Ситуация подчёркивает важность проверки целостности пакетов перед установкой и мониторинга изменений в размере и составе библиотек. Для защиты от подобных угроз специалисты рекомендуют использовать инструменты верификации подписей, а также внимательно анализировать скрипты жизненного цикла пакетов. Однако в данном случае главной причиной стал взлом конвейера публикации - это напоминает о необходимости строгой защиты инфраструктуры CI/CD, включая ограничение доступа к секретам и использование механизмов изоляции и аудита действий.
Дальнейшие подробности будут опубликованы по мере завершения технического анализа остальных пакетов. Сейчас известно, что все восемь заражённых библиотек уже удалены из реестра npm, а пользователям рекомендуется проверить свои проекты на наличие установленных вредоносных версий и немедленно отозвать скомпрометированные секреты.
Индикаторы компрометации
Affected Packages
- @redhat-cloud-services/chrome 2.3.1
- @redhat-cloud-services/compliance-client 4.0.3
- @redhat-cloud-services/config-manager-client 5.0.4
- @redhat-cloud-services/entitlements-client 4.0.11
- @redhat-cloud-services/eslint-config-redhat-cloud-services 3.2.1
- @redhat-cloud-services/frontend-components 7.7.2
- @redhat-cloud-services/frontend-components-advisor-components 3.8.2
- @redhat-cloud-services/frontend-components-config 6.11.3
- @redhat-cloud-services/frontend-components-config-utilities 4.11.2
- @redhat-cloud-services/frontend-components-notifications 6.9.2
- @redhat-cloud-services/frontend-components-remediations 4.9.2
- @redhat-cloud-services/frontend-components-testing 1.2.1
- @redhat-cloud-services/frontend-components-translations 4.4.1
- @redhat-cloud-services/frontend-components-utilities 7.4.1
- @redhat-cloud-services/hcc-feo-mcp 0.3.1
- @redhat-cloud-services/hcc-kessel-mcp 0.3.1
- @redhat-cloud-services/hcc-pf-mcp 0.6.1
- @redhat-cloud-services/host-inventory-client 5.0.3
- @redhat-cloud-services/insights-client 4.0.4
- @redhat-cloud-services/integrations-client 6.0.4
- @redhat-cloud-services/javascript-clients-shared 2.0.8
- @redhat-cloud-services/notifications-client 6.1.4
- @redhat-cloud-services/patch-client 4.0.4
- @redhat-cloud-services/quickstarts-client 4.0.11
- @redhat-cloud-services/rbac-client 9.0.3
- @redhat-cloud-services/remediations-client 4.0.4
- @redhat-cloud-services/rule-components 4.7.2
- @redhat-cloud-services/sources-client 3.0.10
- @redhat-cloud-services/topological-inventory-client 3.0.10
- @redhat-cloud-services/tsc-transform-imports 1.2.2
- @redhat-cloud-services/types 3.6.1