У выніку кампраметацыі працэсу фармавання рэлізаў на базе 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)
Крыніца: opennet.ru
