Las llaves de todos los escondites cambiaron de manos sin que nadie lo notara.

Los atacantes volvieron a golpear la cadena de suministro de npm, pero esta vez eligieron un objetivo estrecho y peligroso: paquetes utilizados por desarrolladores en el ecosistema de SAP. La campaña maliciosa «Mini Shai-Hulud» parece pequeña en cuanto al número de componentes afectados, pero puede dar acceso a tokens, secretos en la nube y entornos de trabajo de las empresas.
Según la empresa Aikido, estuvieron en riesgo las versiones 2.2.2 de @cap-js/sqlite y @cap-js/postgres, la versión 2.10.1 de @cap-js/db-service y la versión 1.2.48 de mbt. Se añadió a los paquetes un script preinstall que ejecutaba automáticamente el archivo setup.mjs al instalarse vía npm. El código principal parecía legítimo, mientras que la lógica maliciosa estaba oculta en dos archivos nuevos: setup.mjs y execution.js.
El primer archivo descargaba el runtime de JavaScript Bun 1.3.13 desde GitHub y lanzaba a través de él la segunda etapa del ataque. El archivo execution.js resultó ser un módulo ofuscado de gran tamaño, de 11,7 MB, que robaba credenciales de máquinas de trabajo y servidores CI/CD. Entre los objetivos estaban tokens de GitHub y npm, variables de entorno, secretos de GitHub Actions, datos de AWS, Azure, GCP y Kubernetes, así como configuraciones de Claude, MCP, Signal, Electrum y VPN.
Particularmente peligroso es el mecanismo relacionado con GitHub Actions. El código malicioso incluía un componente en Python que buscaba el proceso Runner.Worker, leía la memoria del runner e intentaba extraer secretos ocultos de las estructuras internas.
Los autores del informe consideran como el punto de entrada más probable la filtración del token de npm a través de la compilación de un pull request en CircleCI. En el repositorio SAP/cloud-mta-build-tool, el 29 de abril apareció un PR borrador de corta duración con cambios en el CI. Aunque la rama fue sobrescrita después, los registros de CircleCI conservaron rastros del cargador Bun, de la carga ofuscada y de la ejecución del comando de prueba, junto a los cuales aparecían secretos del proyecto enmascarados, incluidos los tokens de npm y de GitHub.
Para exfiltrar datos, el programa malicioso utilizó repositorios públicos de GitHub. Los nuevos repositorios recibían nombres temáticos relacionados con la obra «Dune» y una descripción idéntica: «A Mini Shai-Hulud has Appeared», y los resultados cifrados se guardaban en archivos results/results-.json. Para la difusión se usaban mensajes de commit con la marca «OhNoWhatsGoingOnWithGitHub», de los cuales se extraían tokens de GitHub codificados.
Los autores del informe advierten que al instalar las versiones afectadas no basta con reemplazar los tokens de npm. Hay que considerar comprometidos GitHub, los servicios en la nube, Kubernetes, los secretos de CI/CD y las herramientas locales de los desarrolladores. También conviene comprobar los archivos lock, las cachés de paquetes, los registros de CI, los registros internos y las estaciones de trabajo en busca de setup.mjs, execution.js, descargas de Bun 1.3.13 y de directorios sospechosos .claude o .vscode.