Como resultado de la compromisión del proceso de generación de lanzamientos basado en GitHub Actions en los repositorios de RedHatInsights de la empresa Red Hat, los atacantes pudieron publicar 64 versiones maliciosas en el catálogo de NPM, abarcando 32 paquetes de NPM para la plataforma Red Hat Cloud Services. Para cada uno de los paquetes de NPM afectados, se emitieron dos versiones maliciosas que integraban código para activar una nueva variante del gusano mini-shai-hulud, que busca tokens y credenciales en el entorno actual.
El gusano se alojaba en el archivo index.js y se activaba a través de un manejador preinstall que se invocaba durante la instalación del paquete afectado. Tras su activación, el gusano buscaba en el sistema tokens de NPM (~/.npmrc), PyPI, CircleCI, AWS, GCP, Docker, Azure, HashiCorp y KubernetesK8s, así como claves SSH privadas. Los datos encontrados se enviaban a los atacantes. En caso de descubrir un token de conexión al catálogo de NPM, el gusano publicaba automáticamente nuevas versiones maliciosas para los paquetes en desarrollo en el entorno actual, afectando el árbol de dependencias.
El acceso a GitHub Actions se obtuvo a través de la compromisión de la cuenta de uno de los empleados de Red Hat, lo que permitió a los atacantes enviar commits directamente a los repositorios javascript-clients, frontend-components y platform-frontend-ai-toolkit, sin pasar por la fase de revisión. A través de los commits en el sistema de integración continua, se inyectaba un archivo ci.yaml, que al ejecutar la tarea de compilación lanzaba mediante la plataforma bun un script _index.js. Este script utilizaba el permiso 'id-token: write' para solicitar un token OIDC (OpenID Connect) a GitHub, que luego se utilizaba para autenticarse en NPM mediante el mecanismo de 'publicación confiable'.
Los paquetes de NPM que contienen código malicioso:
- @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)
Fuente: opennet.ru
