Investigadores de ciberseguridad han revelado detalles de lo que parece ser una nueva cepa de Shai Hulud en el registro npm con ligeras modificaciones con respecto a la ola anterior observada el mes pasado.
El paquete npm que incorpora la nueva variedad Shai Hulud es «@vietmoney/react-big-calendar», que fue subido a npm en marzo de 2021 por un usuario llamado «hoquocdat». Se actualizó por primera vez el 28 de diciembre de 2025 a la versión 0.26.2. El paquete se ha descargado 698 veces desde su publicación inicial. La última versión se ha descargado 197 veces.
Aikido, que detectó el paquete, dijo que no ha detectado ninguna propagación o infección importante tras el lanzamiento del paquete.
«Esto sugiere que podemos haber atrapado a los atacantes probando su carga útil», dijo el investigador de seguridad Charlie Eriksen. «Las diferencias en el código sugieren que esto fue ofuscado nuevamente desde la fuente original, no modificado en su lugar. Esto hace que sea muy poco probable que sea una copia, sino que fue creado por alguien que tuvo acceso al código fuente original del gusano».
El ataque Shai-Hulud salió a la luz por primera vez en septiembre de 2025, cuando se descubrió que paquetes npm troyanizados robaban datos confidenciales como claves API, credenciales de la nube y tokens npm y GitHub, y los exfiltraban a los repositorios de GitHub utilizando los tokens robados. En la segunda ola detectada en noviembre de 2025, los repositorios contenían la descripción «Sha1-Hulud: The Second Coming».
Pero el aspecto más importante de la campaña es su capacidad de convertir los tokens npm en armas para recuperar otros 100 paquetes más descargados asociados con el desarrollador, introducir los mismos cambios maliciosos y enviarlos a npm, expandiendo así la escala del compromiso de la cadena de suministro en forma de gusano.
La nueva cepa llega con cambios notables.
- El archivo inicial ahora se llama «bun_installer.js» y la carga útil principal se denomina «environment_source.js».
- Los repositorios de GitHub a los que se filtraron los secretos presentan la descripción «Goldox-T3chs: Only Happy Girl».
- Los nombres de los archivos que contienen los secretos son: 3nvir0nm3nt.json, cl0vd.json, c9nt3nts.json, pigS3cr3ts.json y actionSecrets.json.
- La eliminación del «interruptor de hombre muerto» que resultaba en la ejecución de un limpiador si no se encontraba que los tokens de GitHub o npm se abusaran de la filtración de datos y la autorreplicación.
Otras modificaciones importantes incluyen un mejor manejo de errores cuando el escáner de credenciales de TruffleHog agota el tiempo de espera, una publicación mejorada de paquetes basada en el sistema operativo y ajustes en el orden en que se recopilan y guardan los datos.
El paquete falso Jackson JSON Maven lanza una baliza de ataque de cobalto
El desarrollo se produce cuando la compañía de seguridad de la cadena de suministro dijo que identificó un paquete malicioso («org.fasterxml.jackson.core/jackson-databind») en Maven Central que se hace pasar por una extensión legítima de la biblioteca Jackson JSON («com.fasterxml.jackson.core»), pero incorpora una cadena de ataque de varias etapas que ofrece ejecutables específicos de la plataforma. Desde entonces, el paquete ha sido retirado.
Dentro del archivo Java Archive (JAR) hay un código muy ofuscado que entra en acción una vez que un desarrollador desprevenido agrega la dependencia maliciosa a su archivo «pom.xml».
«Cuando se inicia la aplicación Spring Boot, Spring busca clases @Configuration y encuentra JacksonSpringAutoConfiguration», dijo Eriksen. «La verificación @ConditionalOnClass({ApplicationRunner.class}) pasa (ApplicationRunner siempre está presente en Spring Boot), por lo que Spring registra la clase como un bean. El ApplicationRunner del malware se invoca automáticamente después de que se carga el contexto de la aplicación. No se requieren llamadas explícitas».
Luego, el malware busca un archivo llamado «.idea.pid» en el directorio de trabajo. La elección del nombre del archivo es intencional y está diseñada para combinarse con los archivos del proyecto IntelliJ IDEA. Si existe un archivo de este tipo, es una señal para el malware de que ya se está ejecutando una instancia de sí mismo, lo que hace que se cierre silenciosamente.
En el siguiente paso, el malware procede a verificar el sistema operativo y se comunica con un servidor externo («m.fasterxml(.)org:51211») para obtener una respuesta cifrada que contiene las URL de una carga útil que se descargará según el sistema operativo. La carga útil es una baliza Cobalt Strike, una herramienta de simulación de adversario legítima de la que se puede abusar para post-explotación y comando y control.
En Windows, está configurado para descargar y ejecutar un archivo llamado «svchosts.exe» de «103.127.243(.)82:8000», mientras que una carga útil denominada «actualización» se descarga desde el mismo servidor para los sistemas Apple macOS.
Un análisis más detallado ha revelado que el dominio con errores tipográficos fastxml(.)org se registró a través de GoDaddy el 17 de diciembre de 2025, apenas una semana antes de que se detectara el paquete malicioso Maven.
«Este ataque aprovechó un punto ciego específico: los intercambios de prefijos de estilo TLD en la convención de espacio de nombres de dominio inverso de Java», dijo Eriksen. «La biblioteca Jackson legítima usa com.fasterxml.jackson.core, mientras que el paquete malicioso usa org.fasterxml.jackson.core».
El problema, dijo Aikido, surge de la incapacidad de Maven Central para detectar paquetes imitadores que emplean prefijos similares a sus contrapartes legítimas para engañar a los desarrolladores para que los descarguen. Se recomienda que los mantenedores del repositorio de paquetes consideren marcar dichos paquetes para su revisión, mantengan una lista de espacios de nombres de alto valor y sometan cualquier paquete publicado bajo espacios de nombres similares a una verificación adicional para garantizar que sean legítimos.