Mini Shai-Hulud regresa, comprometiendo cientos de paquetes npm

Ha resurgido una campaña de malware autorreplicante conocida como Mini Shai-Hulud, esta vez incrustándose en cientos de paquetes npm. El actor de amenazas detrás de esto, identificado como TeamPCP, ha sido vinculado a oleadas anteriores de la misma campaña, siendo esta última variante más capaz que las oleadas anteriores.

Los investigadores que analizaron la carga útil encontraron un gusano que se propaga de forma autónoma, instala puertas traseras persistentes a nivel del sistema operativo y está diseñado específicamente para sobrevivir a la primera respuesta más común: eliminar el paquete.

Cómo funciona el ataque

El malware se ejecuta en el momento en que se instala un paquete de software afectado, ya sea en el entorno local de un desarrollador o dentro de una canalización de CI/CD. Un gancho se dispara antes de cualquier otro paso, dando a la carga útil acceso inmediato a la máquina.

Recopila tokens de GitHub, tokens npm, claves SSH, credenciales de proveedores de nube y cadenas de conexión de bases de datos. En entornos de compilación automatizados, utiliza la propia identidad confiable de la canalización para obtener credenciales de publicación, lo que le permite enviar versiones de paquetes envenenados al registro con el nombre de un mantenedor legítimo. Los datos robados se envían a repositorios de GitHub controlados por el atacante.

Después de robar un token de publicación, el malware verifica todos los paquetes a los que puede acceder el token, agrega su código a esos paquetes y publica nuevas versiones envenenadas utilizando la cuenta del mantenedor. Por lo tanto, un ejecutor de CI infectado (la máquina o servidor virtual que crea, prueba y publica automáticamente el código de un proyecto) puede contaminar todos los paquetes que el ejecutor puede publicar. También busca en la computadora de un desarrollador otros proyectos de Node.js y se copia en ellos, por lo que una sola instalación infectada puede comprometer una estación de trabajo completa.

«Si alguno de los paquetes afectados se ejecutó en su entorno, trate la máquina o el ejecutor como expuesto hasta que se roten los secretos, se eliminen los artefactos de persistencia y se haya revisado la actividad de publicación reciente». Investigadores de seguridad del Aikido escribió en una publicación de blog.

Quitar el paquete no es suficiente

Los investigadores descubrieron que una reversión de dependencia estándar deja intacto el acceso del atacante. El malware incorpora puertas traseras en la configuración de las herramientas de desarrollo, en particular .vscode/tasks.json y .claude/settings.json, que permanecen en el disco incluso después de que se elimina el paquete npm. Esos archivos deben ser auditados y limpiados para eliminar el punto de apoyo del atacante.

La carga útil también instala servicios en segundo plano a nivel del sistema operativo: un servicio de usuario systemd en Linux, un LaunchAgent en macOS. Ambos ejecutan una puerta trasera llamada kitty-monitor, que sondea la búsqueda de confirmación de GitHub cada hora en busca de comandos remotos firmados. Un segundo proceso, gh-token-monitor, verifica los tokens de GitHub robados cada 60 segundos, alertando al atacante en el momento en que uno es revocado. Un atacante puede mantener el acceso y monitorear la respuesta de la víctima casi en tiempo real, mucho después de que se haya descubierto la infección original.

Múltiple empresas de seguridad han señalado qué dependencias populares están siendo atacadas. En esta ola, se ha vuelto popular el software de visualización de datos, incluidos AntV y TallyUI de código abierto de Alibaba. La campaña también abordó utilidades ampliamente utilizadas como echarts-for-react (un contenedor de React para ECharts) y timeago.js (una pequeña biblioteca de JavaScript que permite a los desarrolladores formatear marcas de tiempo).

«Incluso si solo un subconjunto de esos paquetes recibió actualizaciones maliciosas, la popularidad del ecosistema de paquetes crea una exposición significativa para las organizaciones que automáticamente obtienen nuevas versiones de dependencia». escribieron los investigadores de Socket, una empresa de seguridad de aplicaciones.

La campaña sigue activa. Debido a que el gusano se propaga utilizando tokens robados de entornos infectados, se espera que aumente el número de paquetes afectados. Los investigadores han advertido que cualquier máquina o canalización que haya instalado una versión afectada debe tratarse como totalmente comprometida.

La semana pasada, TeamPCP apuntó a otras bibliotecas de software destacadas con el malware, incluidas TanStack, UiPath y MistralAI.

Esta es una historia en desarrollo y se actualizará a medida que haya información disponible.

Greg Otto

Escrito por Greg Otto

Greg Otto es el editor en jefe de CyberScoop y supervisa todo el contenido editorial del sitio web. Greg ha dirigido una cobertura de ciberseguridad que ha ganado varios premios, incluidos los de la Sociedad de Periodistas Profesionales y la Sociedad Estadounidense de Editores de Publicaciones Empresariales. Antes de unirse a Scoop News Group, Greg trabajó para Washington Business Journal, US News & World Report y WTOP Radio. Tiene una licenciatura en periodismo televisivo de la Universidad de Temple.

Mini Shai-Hulud impulsa paquetes maliciosos AntV npm a través de una cuenta de mantenimiento comprometida – CYBERDEFENSA.MX

Los investigadores de ciberseguridad han descubierto una nueva campaña de ataque a la cadena de suministro de software que ha comprometido varios paquetes npm asociados con el ecosistema @antv como parte de la actual ola de ataques Mini Shai-Hulud.

«El ataque afecta a los paquetes vinculados a la cuenta de mantenimiento de npm, incluido echarts-for-react, un contenedor de React ampliamente utilizado para Apache ECharts con aproximadamente 1,1 millones de descargas semanales», Socket dicho.

La lista de paquetes afectados incluye paquetes @antv como @antv/g2, @antv/g6, @antv/x6, @antv/l7, @antv/s2, @antv/f2, @antv/g, @antv/g2plot, @antv/graphin y @antv/data-set, así como paquetes relacionados fuera del espacio de nombres @antv, incluidos echarts-for-react, timeago.js, sensor de tamaño, canvas-nest.js y otros.

La compañía de seguridad de aplicaciones dijo que el oficio coincide con Mini Shai-Hulud, donde se aprovecha una cuenta de mantenimiento comprometida para lanzar versiones troyanizadas en rápida sucesión.

El desarrollo se produce mientras la campaña de ataque a la cadena de suministro continúa deslizándose a través de la cadena de suministro de software, invadiendo rápidamente diferentes registros de código abierto e infectando cientos de paquetes de software al incorporar código de robo de credenciales en herramientas de desarrollo populares.

Ciberseguridad

«El radio de explosión potencial es significativo porque la cuenta de publicación afectada está conectada a paquetes ampliamente utilizados en visualización de datos, gráficos, mapeo, diagramas y ecosistemas de componentes de React», dijo Socket. «Incluso si sólo un subconjunto de esos paquetes recibió actualizaciones maliciosas, la popularidad del ecosistema de paquetes crea una exposición significativa para las organizaciones que automáticamente obtienen nuevas versiones de dependencia».

Se dice que el atacante publicó 639 versiones maliciosas en 323 paquetes únicos, incluidas 558 versiones en 279 paquetes @antv únicos. La carga útil del ladrón recopila más de 20 tipos de credenciales, Amazon Web Services, Google Cloud, Microsoft Azure, GitHub, npm, SSH, Kubernetes, Vault, Stripe, cadenas de conexión de bases de datos e intenta escapar del contenedor Docker a través del socket del host. El ladrón es idéntico a la carga útil Mini Shai-Hulud utilizada en el compromiso de SAP.

Los datos recopilados finalmente se serializan, comprimen, cifran y extraen al dominio («tm-kosche[.]com:443»). Como mecanismo alternativo, el malware aprovecha el token de GitHub robado para crear un repositorio público en la cuenta de la víctima y guardar los datos en un archivo JSON.

Los repositorios presentan la descripción «niagA oG eW ereH: duluH-iahS», que se invierte en «Shai-Hulud: Here We Go Again». Al momento de escribir este artículo, hay más de 2.500 repositorios en GitHub que contiene este marcador.

Marco Shai-Hulud

«Estos repositorios se crean utilizando tokens de GitHub robados de entornos CI/CD comprometidos», StepSecurity dicho. «El gran volumen, más de dos mil repositorios, proporciona un límite inferior en la cantidad de entornos únicos cuyas credenciales fueron exfiltradas con éxito. Si su token de GitHub estaba entre los robados, el atacante lo ha utilizado para crear al menos uno de estos repositorios bajo una cuenta que controla».

Además, el malware incorpora una lógica de propagación de npm que abusa de los tokens de npm robados para validarlos primero a través de la API de registro de npm, enumera los paquetes mantenidos por el propietario del token, descarga archivos tar de paquetes, inyecta la carga útil maliciosa, agrega un gancho de preinstalación, aumenta las versiones de los paquetes y los vuelve a publicar utilizando la identidad del mantenedor comprometido.

«El ataque utiliza dos rutas de ejecución», SafeDep dicho. «Cada versión comprometida agrega un gancho de preinstalación (bun run index.js). 630 de las 631 versiones maliciosas también inyectan una entrada de Dependencias opcional [pointing to imposter commits] que entrega una segunda copia de la carga útil a través del repositorio legítimo de antvis/G2 GitHub».

«La publicación de 22 minutos en 314 paquetes (631 versiones), con una carga útil ofuscada idéntica, descarta una operación gradual o dirigida. Esta fue una exfiltración rápida y automatizada utilizando un token robado».

Se considera que la campaña autorreplicante Mini Shai-Hulud es obra de un actor de amenazas con motivación financiera llamado TeamPCP. Sin embargo, a partir de la semana pasada, la actividad entró en una nueva fase agresiva después de TeamPCP. lanzó el código fuente completo para que otros actores de amenazas lo utilicen como parte de un concurso de ataque a la cadena de suministro anunciado en asociación con BreachForums.

Ciberseguridad

«La apertura de un marco ofensivo de producción no tiene precedentes, pero es inusual para una campaña activa», Datadog dicho. «Reduce la barrera para que otros actores adopten el manual de TeamPCP, incluidas las técnicas más sofisticadas como el abuso de tokens OIDC, la falsificación de procedencia y los ganchos de persistencia de herramientas de IA».

Desde entonces, un actor de amenazas desconocido ha subido cuatro paquetes npm maliciosos, uno de los cuales contiene una copia casi literal del gusano Shai-Hulud con su propia infraestructura de comando y control, una indicación de que versiones clonadas del gusano pueden infestar ecosistemas de código abierto.

Este ola imitadoraa su vez, complica los esfuerzos de atribución, mientras que los ataques continúan facilitando el robo de credenciales y abriendo la puerta a una explotación posterior. El incidente demuestra una vez más cómo se puede abusar de las herramientas comprometedoras que ya son confiables dentro de las redes empresariales como vehículos de distribución de malware. Lo que hace que la campaña sea realmente peligrosa es que un compromiso alimenta al siguiente, lo que resulta en un radio de explosión cada vez mayor a medida que se piratean más paquetes.

«Esta campaña está diseñada para el robo de credenciales a escala», Trend Micro dicho en un informe la semana pasada. «Organizaciones que utilizan GitHub Actions, PyPI, Docker Hub, GHCR [GitHub Container Registry]las extensiones de VS Code y los corredores de CI conectados a la nube están directamente expuestos a este riesgo».

El gusano Mini Shai-Hulud compromete TanStack, Mistral AI, Guardrails AI y más paquetes – CYBERDEFENSA.MX

EquipoPCPel actor de amenazas detrás del reciente La ola de ataques a la cadena de suministro se ha relacionado con el compromiso de los paquetes npm y PyPI de TanStack, UiPath, Mistral AI, OpenSearch y Guardrails AI como parte de una nueva campaña Mini Shai-Hulud.

Los paquetes npm afectados se han modificado para incluir un archivo JavaScript ofuscado («router_init.js») que está diseñado para perfilar el entorno de ejecución y lanzar un ladrón de credenciales integral capaz de apuntar a proveedores de nube, billeteras de criptomonedas, herramientas de inteligencia artificial, aplicaciones de mensajería y sistemas de CI, incluidas Github Actions. Seguridad del Aikido, Laboratorios Endor, SafeDep, Enchufey PasoSeguridad dicho. Los datos se extraen al archivo «filev2.getsession».[.]dominio «org».

El uso de la infraestructura del protocolo de sesión es un intento deliberado por parte de los atacantes de evadir la detección, ya que es poco probable que el dominio sea bloqueado dentro de entornos empresariales, dado que pertenece a un servicio de mensajería descentralizado y centrado en la privacidad. Como opción alternativa, los datos cifrados se envían a repositorios controlados por el atacante con el nombre de autor «claude@users.noreply.github.com» a través de la API GitHub GraphQL utilizando los tokens de GitHub robados.

Ciberseguridad

El malware también es capaz de establecer ganchos de persistencia en Claude Code y Microsoft Visual Studio Code (VS Code) para sobrevivir a los reinicios y volver a ejecutar el ladrón en cada inicio de los IDE.

Además, instala un servicio gh-token-monitor para monitorear y volver a filtrar tokens de GitHub, e inyecta dos flujos de trabajo de GitHub Actions maliciosos para serializar los secretos del repositorio en un objeto JSON y cargar los datos en un servidor externo («api.masscan[.]nube»).

TanStack ha desde entonces rastreado el compromiso de un ataque encadenado de GitHub Actions que involucra el disparador «pull_request_target», Envenenamiento de caché de acciones de GitHuby extracción de memoria en tiempo de ejecución de un token OIDC del proceso de ejecución de GitHub Actions. «No se robaron tokens de npm y el flujo de trabajo de publicación de npm en sí no se vio comprometido», dijo TanStack.

Específicamente, se evalúa que los atacantes organizaron la carga útil maliciosa en una bifurcación de GitHub, la inyectaron en archivos tar npm publicados y luego secuestraron el flujo de trabajo legítimo «TanStack/router» del proyecto para publicar las versiones comprometidas con procedencia SLSA válida.

Lo que hace que el gusano se destaque es su capacidad para propagarse a otros paquetes localizando un token npm publicable con bypass_2fa configurado en verdadero, enumerando cada paquete publicado por el mismo mantenedor e intercambiando un token OIDC de GitHub por un token de publicación por paquete para eludir por completo la autenticación tradicional.

Al compromiso de la cadena de suministro de TanStack se le ha asignado el identificador CVE CVE-2026-45321. Tiene una puntuación CVSS de 9,6 sobre un máximo de 10,0, lo que indica una gravedad crítica. El incidente afectó a 42 paquetes y 84 versiones en todo el ecosistema de TanStack.

«El ataque publicó versiones maliciosas a través del proceso de lanzamiento de GitHub Actions del proyecto utilizando tokens OIDC secuestrados», dijo el investigador de StepSecurity Ashish Kurmi.

«En una escalada extremadamente rara, los paquetes comprometidos llevan certificaciones de procedencia SLSA Build Nivel 3 válidas, lo que lo convierte en el primer gusano npm documentado que produce paquetes maliciosos validados. Desde entonces, el gusano se ha extendido más allá de TanStack a paquetes de UiPath, DraftLab y otros mantenedores».

Además de TanStack, la campaña Mini Shai-Hulud también se ha extendido a varios otros paquetes, incluidos algunos en PyPI.

  • barandillas-ai@0.10.1 (PyPI)
  • mistralai@2.4.6 (PyPI)
  • @opensearch-project/opensearch@3.5.3, 3.6.2, 3.7.0 y 3.8.0
  • @graznido/mcp@0.9.5
  • @graznido/clima@0.5.10
  • @graznido/plan de vuelo@0.5.6
  • @tallyui/connector-medusa@1.0.1, 1.0.2 y 1.0.3
  • @tallyui/connector-vendure@1.0.1, 1.0.2 y 1.0.3
Ciberseguridad

Microsoft, en su análisis del paquete malicioso PyPI mistralai, dijo que está diseñado para descargar un ladrón de credenciales desde un servidor remoto («83.142.209[.]194») que incluye una lógica consciente del país para evitar entornos en idioma ruso y una «rama destructiva geocercada que tiene una probabilidad de 1 entre 6 de ejecutar rm -rf / cuando el sistema parece estar en Israel o Irán».

«El compromiso guardrails-ai@0.10.1 es especialmente notable porque el código malicioso se ejecuta al importar», dijo Socket. «El paquete busca sistemas Linux, descarga un artefacto Python remoto desde https://git-tanstack.com/transformers.pyz, lo escribe en /tmp/transformers.pyz y lo ejecuta con python3 sin verificación de integridad».

«Esta última actividad muestra que la campaña continúa propagándose tanto en npm como en PyPI, con paquetes afectados que abarcan infraestructura de búsqueda, herramientas de inteligencia artificial, paquetes de desarrolladores relacionados con la aviación, automatización empresarial, herramientas de interfaz y ecosistemas adyacentes a CI/CD».