Aikido

Paquetes de Red Hat en npm comprometidos para propagar un gusano que roba credenciales

Escrito por
Ilyas Makari

El 1 de junio de 2026, detectamos varios paquetes oficiales procedentes de la Ámbito de @redhat-cloud-services en npm se vieron comprometidos por un gusano diseñado para robar credenciales. Al parecer, más de 30 paquetes se han visto afectados. El malware parece similar al Malware Mini Shai-Hulud que TeamPCP ha publicado recientemente como código abierto. Dado que las herramientas se han puesto a disposición del público, otros actores maliciosos tienen ahora acceso a las mismas técnicas y pueden replicarlas o adaptarlas. Los paquetes se publicaron a través de GitHub Actions OIDC, lo que indica que se vio comprometida la canalización de CI/CD y no un token de npm. Si ha instalado alguna versión de los paquetes afectados desde el 1 de junio de 2026, considere que todos los secretos de CI, credenciales en la nube, claves SSH y tokens de npm están comprometidos y cámbielos inmediatamente.

Cronología de la campaña «Mini Shai-Hulud»

Miasma: ¿Ha vuelto Shai-Hulud?

La carga útil integrada en los paquetes afectados presenta grandes similitudes con Mini Shai-Hulud, el malware de la cadena de suministro que TeamPCP ha publicado en código abierto. Curiosamente, esta versión se denomina a sí misma «Miasma» y parece haber sustituido las conocidas referencias a Dune de Shai-Hulud por elementos de la mitología griega.

TeamPCP es un grupo de actores maliciosos que ataques a la cadena de suministro meses lanzando ataques a la cadena de suministro selectivos de CI/CD ataques a la cadena de suministro . Su malware «Mini Shai-Hulud» es un sofisticado gusano diseñado para robar credenciales que se propaga mediante la republicación de versiones con puertas traseras de paquetes a los que tiene acceso la cuenta de la víctima. Anteriormente ya informamos de ataques que afectaron a Mistral y TanStack, Durable Task de Microsoft, PyTorch Lightning, Bitwarden CLI e Intercom, todos ellos atribuidos a la misma herramienta.

Cuando TeamPCP publicó el código fuente de Mini Shai-Hulud, la amenaza dejó de limitarse a un solo actor. Ahora cualquier grupo puede hacer uso del marco, adaptarlo y utilizarlo contra nuevos objetivos.

Omisión de la publicación de confianza

La publicación de confianza es un mecanismo introducido por npm para eliminar los tokens de publicación de larga duración de los flujos de CI/CD, sustituyéndolos por tokens OIDC de corta duración emitidos por GitHub Actions. Se diseñó para ofrecer mayor seguridad, pero, como demuestran los ataques recientes, puede eludirse si un atacante consigue acceder a un flujo de CI/CD a través de una vulnerabilidad o un token comprometido.

Descubrimos que la cuenta de GitHub de un empleado de Red Hat había sido comprometida y se había utilizado para enviar directamente a varios repositorios modificaciones maliciosas sin asignar, eludiendo por completo el proceso de revisión de código. Esas modificaciones sin asignar contenían un archivo de flujo de trabajo (ci.yaml) y un guion (_index.js).

nombre: Lanzamiento
el:
  push:
    ramas: ['*']
trabajos:
  versión:
    se ejecuta en: ubuntu-latest
    permisos:
      token de identificación: escribir
      contenido: lectura
    pasos:
      - usos: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
      - usos: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6
      - nombre: preparar
        ejecutar: bun ejecutar _index.js
        env:
          OIDC_PACKAGES: "@redhat-cloud-services/frontend-components-advisor-components, @redhat-cloud-services/chrome, @redhat-cloud-services/frontend-components, @redhat-cloud-services/frontend-components-config-utilities, @redhat-cloud-services/frontend-components-config, @redhat-cloud-services/eslint-config-redhat-cloud-services, @redhat-cloud-services/frontend-components-notifications, @redhat-cloud-services/frontend-components-remediations, @redhat-cloud-services/rule-components, @redhat-cloud-services/frontend-components-testing, @redhat-cloud-services/frontend-components-translations, @redhat-cloud-services/tsc-transform-imports, @redhat-cloud-services/types, @redhat-cloud-services/frontend-components-utilities"
          WORKFLOW_ID: "ci.yaml"
          REPO_ID_SUFFIX: "RedHatInsights/frontend-components"

Cuando se ejecuta el flujo de trabajo, instala Bun y ejecuta _index.js, pasándole una lista de paquetes de destino a través de la OIDC_PAQUETES variable de entorno. El script utiliza la id-token: escribir permiso para solicitar un token OIDC de corta duración a GitHub y, a continuación, utiliza ese token para autenticarse directamente en el punto final de publicación de confianza de npm y publicar versiones con puertas traseras de todos los paquetes de la lista.

Se trata del mismo patrón básico observado en las brechas de seguridad de TanStack y Bitwarden: el propio proceso de CI/CD se convierte en la superficie de ataque, mientras que la publicación de confianza basada en OIDC —diseñada para eliminar los tokens de larga duración— se convierte en una señal de confianza engañosa.

El script de preinstalación

Cada paquete comprometido incluye un script de preinstalación en su archivo package.json que ejecuta automáticamente el archivo index.js de Node.js cada vez que se ejecuta «npm install», antes de que se ejecute el código de la aplicación y antes de que el desarrollador tenga indicios de que algo va mal.

"scripts": {
  "preinstall": "node index.js"
}

El archivo index.js contiene una carga útil de 4,2 MB oculta tras varias capas de ofuscación.

Qué roba

Al igual que en anteriores ataques de Mini Shai-Hulud, la carga útil lleva a cabo un amplio barrido de credenciales en proveedores de servicios en la nube, entornos de CI/CD y herramientas de desarrollo. En lo que respecta a la integración continua (CI), se centra en los secretos de GitHub Actions, entre los que se incluyen GITHUB_TOKEN y ACTIONS_RUNTIME_TOKEN. En cuanto a las credenciales en la nube, recopila claves de acceso y tokens de sesión de AWS, credenciales predeterminadas de aplicaciones y archivos de claves de cuentas de servicio de GCP, así como credenciales de entidades de servicio y tokens de identidades gestionadas de Azure. También busca tokens de HashiCorp Vault, tokens de cuentas de servicio de Kubernetes y archivos kubeconfig, tokens de publicación de npm y PyPI, claves privadas SSH, credenciales de registros de Docker, claves GPG y cualquier archivo .env que pueda encontrar en el sistema de archivos.

Cómo Aikido detecta esto

Si es usuario de Aikido, revise su feed central y filtre por problemas de malware. Esto aparecerá como un problema crítico de 100/100. Aikido realiza reescaneos cada noche, pero recomendamos activar un reescaneo manual ahora.

Si aún no es usuario de Aikido, puede crear una cuenta y conectar sus repositorios. Nuestra cobertura de malware está incluida en el plan gratuito, sin necesidad de tarjeta de crédito.

Para una cobertura más amplia en todo tu equipo, la protección de dispositivos de Aikido te ofrece visibilidad y control sobre los paquetes de software instalados en los dispositivos de tu equipo. Abarca extensiones de navegador, bibliotecas de código, complementos de IDE y dependencias de compilación, todo en un solo lugar. Detén el malware antes de que se instale.

Para una protección futura, considere Aikido Safe Chain (código abierto). Safe Chain se integra en su flujo de trabajo existente, interceptando comandos npm, npx, yarn, pnpm y pnpx y verificando los paquetes con Aikido Intel antes de la instalación.

Indicadores de compromiso

Si has instalado alguna de las siguientes versiones de los paquetes, considera que todos los secretos de CI, las credenciales de la nube, las claves SSH y los tokens de npm se han visto comprometidos y cámbialos de inmediato:

  • @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/cliente-de-derechos (4.0.11, 4.0.12)
  • @redhat-cloud-services/eslint-config-redhat-cloud-services (3.2.1, 3.2.2)
  • @redhat-cloud-services/componentes-frontend (7.7.2, 7.7.3)
  • @redhat-cloud-services/componentes-frontend-componentes-del-asesor (3.8.2)
  • @redhat-cloud-services/configuración-de-componentes-frontend (6.11.3, 6.11.4)
  • @redhat-cloud-services/utilidades-de-configuración-de-componentes-frontend (4.11.2, 4.11.3)
  • @redhat-cloud-services/componentes-frontend-notificaciones (6.9.2, 6.9.3)
  • @redhat-cloud-services/correcciones-de-componentes-frontend (4.9.2, 4.9.3)
  • @redhat-cloud-services/pruebas-de-componentes-frontend (1.2.1, 1.2.2)
  • @redhat-cloud-services/traducciones-de-componentes-de-interfaz (4.4.1, 4.4.2)
  • @redhat-cloud-services/componentes-frontend-utilidades (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/integraciones-cliente (6.0.4, 6.0.5)
  • @redhat-cloud-services/clientes-javascript-compartidos (2.0.8, 2.0.9)
  • @redhat-cloud-services/cliente-de-notificaciones (6.1.4, 6.1.5)
  • @redhat-cloud-services/patch-client (4.0.4, 4.0.5)
  • @redhat-cloud-services/guías-rápidas-para-clientes (4.0.11, 4.0.12)
  • @redhat-cloud-services/rbac-client (9.0.3, 9.0.4)
  • @redhat-cloud-services/correcciones-cliente (4.0.4, 4.0.5)
  • @redhat-cloud-services/componentes-de-reglas (4.7.2, 4.7.3)
  • @redhat-cloud-services/sources-client (3.0.10, 3.0.11)
  • @redhat-cloud-services/cliente-de-inventario-topológico (3.0.10, 3.0.11)
  • @redhat-cloud-services/tsc-transform-imports (1.2.2)
  • @redhat-cloud-services/tipos (3.6.1, 3.6.2, 3.6.4)
  • @redhat-cloud-services/vulnerabilidades-cliente (2.1.8, 2.1.9)
Compartir:

https://www.aikido.dev/blog/red-hat-npm-packages-compromised-credential-stealing-worm

Suscríbete para recibir noticias

4.7/5
¿Cansado de los falsos positivos?

Prueba Aikido como otros 100k.
Empiece ahora
Obtenga un recorrido personalizado

Con la confianza de más de 100k equipos

Reservar ahora
Escanee su aplicación en busca de IDORs y rutas de ataque reales

Con la confianza de más de 100k equipos

Empezar a escanear
Vea cómo el pentesting de IA prueba su aplicación

Con la confianza de más de 100k equipos

Empezar a probar

Asegura tu plataforma ahora

Protege tu código, la nube y el entorno de ejecución en un único sistema central.
Encuentra y corrije vulnerabilidades de forma rápida y automática.

No se requiere tarjeta de crédito | Resultados del escaneo en 32 segundos.