Ca urmare a compromiterii procesului de formare a versiunilor bazat pe GitHub Actions în depozitele RedHatInsights aparținând companiei Red Hat, atacatorii au reușit să publice în catalogul NPM 64 versiuni malițioase, acoperind 32 de pachete NPM pentru platforma Red Hat Cloud Services. Fiecare dintre pachetele NPM afectate a avut două versiuni malițioase lansate, în care a fost integrat un cod pentru activarea unei noi variante de vierme mini-shai-hulud, care caută token-uri și acreditive în mediu.
Viermele era plasat în fișierul index.js și era activat printr-un handler preinstall, invocat la instalarea pachetului afectat. După activare, viermele căuta în sistem token-uri pentru NPM (~/.npmrc), PyPI, CircleCI, AWS, GCP, Docker, Azure, HashiCorp și KubernetesK8s, precum și chei SSH private. Datele găsite erau trimise atacatorilor. În cazul descoperirii unui token pentru conectarea la catalogul NPM, viermele publica automat noi versiuni malițioase pentru pachetele dezvoltate în mediu, afectând arborele dependențelor.
Accesul la GitHub Actions a fost obținut ca urmare a compromiterii contului unui angajat Red Hat, ceea ce a permis atacatorilor să trimită direct comit-uri în depozitele javascript-clients, frontend-components și platform-frontend-ai-toolkit, fără a trece prin etapa de revizuire. Prin comit-uri în sistemul de integrare continuă, era introdus un fișier ci.yaml, care pornind din munca de compilare, rula prin intermediul platformei bun un script _index.js. Scriptul folosea privilegiul „id-token: write” pentru a solicita de la GitHub un token OIDC (OpenID Connect), care era apoi folosit pentru autentificarea în NPM prin mecanismul „publicare de încredere”.
Pachetele NPM care conțin cod malițios:
- @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)
Sursa: opennet.ro
