|
В результате компрометации процесса формирования релизов на базе GitHub Actions в принадлежащих компании Red Hat репозиториях RedHatInsights, злоумышленники смогли опубликовать в каталоге NPM 64 вредоносные версии, охватывающие 32 NPM-пакета для платформы Red Hat Cloud Services. Для каждого из поражённых NPM-пакетов были выпущены по две вредоносные версии, в которые был интегрирован код для активации нового варианта червя mini-shai-hulud, выполняющего поиск токенов и учётных данных в текущем окружении.
Червь размещался в файле index.js и активировался через preinstall-обработчик, вызываемый при установке поражённого пакета. После активации червь выполнял поиск в системе токенов к NPM (~/.npmrc), PyPI, CircleCI, AWS, GCP, Docker, Azure, HashiCorp и KubernetesK8s, а также закрытых ключей SSH. Найденные данные отправлялись злоумышленникам. В случае обнаружения токена для подключения к каталогу NPM червь автоматически публиковал новые вредоносные релизы для разрабатываемых в текущем окружении пакетов, поражая дерево зависимостей.
Доступ к GitHub Actions был получен в результате компрометации учётной записи одного из сотрудников Red Hat, что позволило атакующим напрямую отправить коммиты в репозитории javascript-clients, frontend-components и platform-frontend-ai-toolkit, без прохождения стадии рецензирования. Через коммиты в систему непрерывной интеграции подставлялся файл ci.yaml, который при запуске сборочной работы запускал при помощи платформы bun скрипт _index.js. Скрипт использовал полномочие "id-token: write" для запроса у GitHub токена OIDC (OpenID Connect), который затем применялся для аутентификации в NPM при помощи механизма "trusted publishing".
NPM-пакеты, содержащие вредоносный код:
@redhat-cloud-services/chrome (2.3.1, 2.3.2)@redhat-cloud-services/compliance-client (4.0.3, 4.0.4)@redhat-cloud-services/config-manager-client (5.0.4, 5.0.5)@redhat-cloud-services/entitlements-client (4.0.11, 4.0.12)@redhat-cloud-services/eslint-config-redhat-cloud-services (3.2.1, 3.2.2)@redhat-cloud-services/frontend-components (7.7.2, 7.7.3)@redhat-cloud-services/frontend-components-advisor-components (3.8.2)@redhat-cloud-services/frontend-components-config (6.11.3, 6.11.4)@redhat-cloud-services/frontend-components-config-utilities (4.11.2, 4.11.3)@redhat-cloud-services/frontend-components-notifications (6.9.2, 6.9.3)@redhat-cloud-services/frontend-components-remediations (4.9.2, 4.9.3)@redhat-cloud-services/frontend-components-testing (1.2.1, 1.2.2)@redhat-cloud-services/frontend-components-translations (4.4.1, 4.4.2)@redhat-cloud-services/frontend-components-utilities (7.4.1, 7.4.2)@redhat-cloud-services/hcc-feo-mcp (0.3.1, 0.3.2)@redhat-cloud-services/hcc-kessel-mcp (0.3.1, 0.3.2)@redhat-cloud-services/hcc-pf-mcp (0.6.1, 0.6.2)@redhat-cloud-services/host-inventory-client (5.0.3, 5.0.4)@redhat-cloud-services/insights-client (4.0.4, 4.0.5)@redhat-cloud-services/integrations-client (6.0.4, 6.0.5)@redhat-cloud-services/javascript-clients-shared (2.0.8, 2.0.9)@redhat-cloud-services/notifications-client (6.1.4, 6.1.5)@redhat-cloud-services/patch-client (4.0.4, 4.0.5)@redhat-cloud-services/quickstarts-client (4.0.11, 4.0.12)@redhat-cloud-services/rbac-client (9.0.3, 9.0.4)@redhat-cloud-services/remediations-client (4.0.4, 4.0.5)@redhat-cloud-services/rule-components (4.7.2, 4.7.3)@redhat-cloud-services/sources-client (3.0.10, 3.0.11)@redhat-cloud-services/topological-inventory-client (3.0.10, 3.0.11)@redhat-cloud-services/tsc-transform-imports (1.2.2)@redhat-cloud-services/types (3.6.1, 3.6.2, 3.6.4)@redhat-cloud-services/vulnerabilities-client (2.1.8, 2.1.9)
|