
Los investigadores de ciberseguridad están haciendo sonar la alarma sobre una nueva campaña de ataque a la cadena de suministro dirigida a paquetes npm relacionados con SAP que contienen malware de robo de credenciales.
Según informes de Aikido Security, SafeDep, Socket, StepSecurity y Wiz, propiedad de Google, la campaña, denominada Mini Shai-Hulud, afectó a los siguientes paquetes relacionados con el ecosistema de desarrollo de aplicaciones en la nube y JavaScript de SAP:
mbt@1.2.48 @cap-js/db-service@2.10.1 @cap-js/postgres@2.2.2 @cap-js/sqlite@2.2.2
«Las versiones afectadas introdujeron un nuevo comportamiento durante la instalación que anteriormente no formaba parte de la funcionalidad esperada de estos paquetes», dijo Socket. «Las versiones comprometidas han agregado scripts de preinstalación que actúan como programadores de tiempo de ejecución, descargando y descomprimiendo archivos ZIP Bun específicos de la plataforma de las versiones de GitHub y ejecutando inmediatamente los archivos binarios de Bun extraídos».
«Esta implementación sigue redirecciones HTTP sin validar el destino y utiliza PowerShell con -ExecutionPolicy Bypass en Windows, lo que aumenta el riesgo para los desarrolladores y entornos CI/CD afectados».
Wiz señaló que el paquete malicioso coincide con varias características presentes en operaciones anteriores de TeamPCP, lo que indica que es probable que el mismo actor de amenazas esté detrás de la última campaña.
La versión sospechosa se publicó entre las 09:55 UTC y las 12:14 UTC del 29 de abril de 2026. El paquete contaminado introduce un nuevo gancho de preinstalación package.json que ejecuta un archivo llamado ‘setup.mjs’. Este gancho actúa como un cargador para el tiempo de ejecución de Bun JavaScript y ejecuta el marco de propagación y ladrón de credenciales (‘execution.js’).
Según Aikido, el malware está diseñado para recopilar credenciales de desarrolladores locales, tokens de GitHub y npm, secretos de GitHub Actions y secretos de la nube de AWS, Azure, GCP y Kubernetes. Los datos robados se cifran y se filtran a un repositorio público de GitHub creado bajo la propia cuenta de la víctima con el título «Ha aparecido un Mini Shai-Hulud». En el momento de escribir este artículo, hay más de 1100 repositorios con descripciones.
Además, la carga útil de 11,6 MB viene con la capacidad de autopropagarse a través de flujos de trabajo de desarrollador y lanzamiento, específicamente usando tokens GitHub y npm para inyectar un flujo de trabajo de GitHub Actions malicioso en el repositorio de la víctima, robando los secretos del repositorio y publicando versiones envenenadas de paquetes npm en el registro.
Sin embargo, este incidente es muy diferente de la ola anterior de Shai Huld.
Todos los datos filtrados se cifran con AES-256-GCM y se encapsulan utilizando RSA-4096 con una clave pública integrada en la carga útil, lo que efectivamente los hace descifrables solo por un atacante. Esto existe en el sistema local ruso. Esta carga útil se compromete con todos los repositorios de GitHub accesibles mediante la inyección de un archivo «.claude/settings.json» que explota el gancho SessionStart de Claude Code y un archivo «.vscode/tasks.json» con la configuración «runOn»: «folderOpen». Esto hará que el malware se ejecute cuando intente abrir un repositorio infectado en Microsoft Visual Studio Code (VS Code) o Claude Code.
«Este es uno de los primeros ataques a la cadena de suministro que tiene como objetivo las configuraciones de agentes de codificación de IA como un vector de persistencia y propagación», dijo StepSecurity.
Un análisis más detallado de la causa raíz reveló que el atacante comprometió la cuenta de RoshniNaveenaS por tres paquetes «@cap-js», luego envió el flujo de trabajo modificado a una rama no principal y utilizó el token npm OIDC extraído para publicar un paquete malicioso de origen desconocido. En cuanto a MBT, se sospecha que está involucrado el compromiso del token npm estático «cloudmtabot» a través de un canal aún no identificado.
«El equipo de cds-dbs hizo la transición a la publicación confiable de npm OIDC en noviembre de 2025», dijo SafeDep. «Esta configuración permite a GitHub Actions solicitar tokens npm de corta duración sin almacenar secretos de larga duración en el repositorio. El atacante reprodujo manualmente este intercambio en un paso de CI y generó el token resultante».
«Brecha de configuración crítica: la configuración del editor confiable OIDC de npm para @cap-js/sqlite confiaba en todos los flujos de trabajo en cap-js/cds-dbs, no solo en el lanzamiento canónico principal-please.yml. Si el flujo de trabajo tiene un token de identificación: permiso de escritura y un entorno: referencia de npm, las transferencias de rama pueden intercambiar tokens OIDC en nombre del paquete».
En respuesta a este incidente, el mantenedor del paquete lanzó una nueva versión segura para reemplazar la versión comprometida.
Source link
