Estos commits no eran triviales. Dentro del repositorio RedHatInsights/javascript-clients, el atacante inyectó un flujo de trabajo malicioso de GitHub Actions que solicitaba tokens de identidad OIDC y ejecutaba una carga útil ofuscada . Esta carga útil publicó 32 versiones de paquetes "troyanizados" bajo el alcance oficial npm
@redhat-cloud-services, cada una con el marcador de campaña "Miasma: The Spreading Blight" (Miasma: La Plaga que se Propaga) . Dado que los paquetes fluían a través del legítimo pipeline de CI/CD (Integración y Despliegue Continuos) de Red Hat y usaban flujos de trabajo de publicación OIDC válidos, portaban firmas de procedencia SLSA auténticas, lo que significa que las verificaciones de seguridad estándar las habrían marcado como verificadas
.
Los paquetes maliciosos tenían un promedio de 80.000 descargas semanales . En el momento en que un desarrollador ejecutaba
npm installpreinstall . La carga útil recolectaba credenciales de AWS, Azure, GCP, GitHub, HashiCorp Vault, configuraciones de Kubernetes, claves SSH y entornos de desarrollo locales
. Luego, usaba esos secretos robados para inyectar código malicioso en otros proyectos a los que la víctima tuviera acceso, convirtiendo cada estación de trabajo y pipeline de CI/CD comprometidos en un nuevo nodo de distribución
.
El comportamiento más novedoso del gusano no fue solo el robo de credenciales, sino la explotación de las herramientas de codificación con IA. Las variantes de Miasma instalaban archivos de reglas maliciosas dirigidos a Claude Code, Cursor, Gemini CLI y GitHub Copilot. Estos archivos están diseñados para ejecutarse automáticamente cuando un desarrollador simplemente clona y abre el repositorio comprometido en su IDE (Entorno de Desarrollo Integrado) . En la práctica, el simple acto de leer el código, sin instalar ningún paquete, podía activar la carga útil.
El 5 de junio de 2026, el gusano llegó a Microsoft. Un commit malicioso titulado "Switched DataConverter to OrchestrationContext [skip ci]" aterrizó en el repositorio Azure/durabletask, con sus metadatos manipulados para mostrar la fecha del commit como el 9 de marzo de 2020, probablemente para evadir sospechas . Ese commit fue la cabeza de playa. A partir de ahí, el gusano se propagó a 73 repositorios en cuatro organizaciones de GitHub de Microsoft: Azure, Azure-Samples, Microsoft y MicrosoftDocs
. Los proyectos afectados incluían infraestructura central como
azure-functions-host y toda la familia Durable Task en .NET, Go, Java, JavaScript, MSSQL y Python .
Para entender Miasma, hay que entender la decisión de TeamPCP de liberar su arma como código abierto.
TeamPCP (también rastreado como Replicating Marauder, TGR-CRI-1135 y UNC6780) es un grupo de ciberamenazas que pasó 2025 y principios de 2026 perfeccionando una familia de gusanos de cadena de suministro autopropagables. Sus operaciones alcanzaron su punto máximo el 11 de mayo de 2026, cuando publicaron 373 versiones de paquetes maliciosos en 172 paquetes de npm y PyPI, con un recuento combinado de descargas superior a los 518 millones . Esa campaña por sí sola demostró la capacidad del gusano para extraer tokens OIDC de la memoria del ejecutor de GitHub Actions, obtener certificados de firma válidos y producir paquetes maliciosos con certificaciones de procedencia verificables
.
Luego, el 12 de mayo de 2026, TeamPCP publicó el código fuente completo de Mini Shai-Hulud en GitHub bajo una licencia MIT . Junto con esto, el grupo anunció una competencia en BreachForums, ofreciendo 1.000 dólares en Monero para el mayor ataque a la cadena de suministro realizado con su framework
. El mensaje era explícito: el kit de herramientas era ahora de dominio público.
En cinco días, una sola cuenta de usuario de npm había subido cuatro paquetes maliciosos, incluyendo un clon casi textual del gusano Shai-Hulud. La firma de seguridad OX Security analizó el clon y descubrió que había sido copiado "casi sin cambio alguno", difiriendo solo en el endpoint de comando y control y la clave privada del atacante . La industrialización de los ataques a la cadena de suministro había comenzado, y los defensores aún no lo sabían.
Diecisiete días después de la liberación del código, Miasma golpeó a Red Hat. El código del malware es una variante estructural de Mini Shai-Hulud, con las referencias originales a la saga Dune reemplazadas por una marca basada en la mitología griega . Pero el "modus operandi" —la ejecución de scripts
preinstall, las cargas útiles de JavaScript ofuscadas, la recolección de credenciales y la autopropagación a través de CI/CD— es sustancialmente idéntico .
Algo crucial es que los investigadores no pueden atribuir de manera concluyente Miasma al propio TeamPCP. La Cloud Security Alliance señala explícitamente que "no se puede descartar a actores imitadores que utilicen el mismo código fuente publicado" . La Unidad 42 de Palo Alto Networks refuerza esto, afirmando que "la atribución sigue siendo incierta" porque la publicación del código fuente significa que cualquier actor competente puede replicar el mismo ataque
. Esta ambigüedad no es una nota al pie, es una característica deliberada de la estrategia de liberación del código abierto, diseñada para inundar el ecosistema con ruido y saturar los esfuerzos de atribución
.
El framework de código abierto no solo habilitó a Miasma, sino que generó una ola de actividad de imitación inmediata.
El 3 de junio de 2026, surgió una nueva variante llamada Phantom Gyp, que alcanzó 57 paquetes npm adicionales, incluyendo @vapi-ai/server-sdk y ai-sdk-ollama . Esta variante utilizaba un archivo
binding.gyp armado para ejecutar código malicioso durante la instalación del paquete, eludiendo la ahora examinada ruta de ejecución postinstall . Los investigadores de OpenSourceMalware confirmaron que la campaña fue el primer uso confirmado en la naturaleza del framework de TeamPCP, aunque TeamPCP nunca se atribuyó el crédito
.
Para el 8 de junio, el SANS Internet Storm Center informó que la población de atacantes en general estaba ahora empuñando activamente el framework Mini Shai-Hulud de código abierto, con múltiples actores de amenazas independientes lanzando sus propias campañas . El malware se había extendido más allá de npm: los investigadores identificaron una variante en Ruby que parecía haber sido traducida por un LLM (Modelo de Lenguaje de Gran Escala), una adaptación burda pero funcional que no formaba parte del código abierto original
. La velocidad de adaptación, de npm a múltiples ecosistemas, subrayó cuán profundamente había cambiado la superficie de ataque.
La respuesta a Miasma fue inusualmente rápida y pública, reflejando tanto la escala del compromiso como la implicación de los principales propietarios de plataformas.
La respuesta de GitHub fue inmediata. La plataforma deshabilitó más de 70 repositorios propiedad de Microsoft en aproximadamente 105 minutos tras la detección, el 5 de junio de 2026 . Los repositorios deshabilitados abarcaban las organizaciones Azure, Azure-Samples, Microsoft y MicrosoftDocs
. En cuestión de días, todos los repositorios fueron restaurados y declarados limpios, aunque algunos pipelines de CI/CD de Microsoft afectados se interrumpieron durante la desactivación
.
Microsoft publicó un análisis técnico detallado a través de su equipo de Inteligencia de Amenazas el 2 de junio de 2026, cubriendo toda la cadena de ataque, desde el compromiso inicial de Red Hat hasta la explotación del CI/CD . Microsoft también tomó la medida inusualmente drástica de eliminar 73 de sus propios repositorios, diciendo a BleepingComputer que la decisión se tomó por la preocupación de que los repositorios estuvieran distribuyendo "contenido potencialmente malicioso"
. La interrupción de los flujos de trabajo internos de CI/CD de Microsoft demostró que ni siquiera el propietario de la plataforma era inmune a las consecuencias colaterales de un gusano de cadena de suministro.
Red Hat publicó el aviso de seguridad RHSB-2026-006 el 1 de junio de 2026, confirmando el compromiso y declarando que la brecha se limitaba a herramientas de desarrollo internas, sin impacto en los productos Red Hat Enterprise Linux u OpenShift . La empresa revocó todas las versiones de paquetes npm afectadas y alertó a los consumidores.
El Centro Nacional de Ciberseguridad del Reino Unido (NCSC) convirtió el incidente en un impulso político más amplio. El 4 de junio de 2026, el NCSC publicó una entrada de blog instando explícitamente a las organizaciones a revisar sus dependencias de código abierto y reducir la exposición a ataques a la cadena de suministro . El momento no fue una coincidencia; la publicación hacía referencia directa a la campaña Miasma como catalizador
. El 9 de junio de 2026, el NCSC publicó un Manual de Estrategia para la Cadena de Suministro de Cyber Essentials actualizado, solicitando a las empresas del Reino Unido que hicieran de la certificación Cyber Essentials un requisito estándar para los proveedores
.
La guía del NCSC se centró en tres aspectos: visibilidad (auditar las actualizaciones de paquetes, identificar dependencias inesperadas y mantener una lista de materiales de software), evaluación (analizar las prácticas de seguridad de los proveedores) y acción (asegurar la cadena de suministro como una prioridad a nivel de junta directiva) . El gobierno del Reino Unido también se involucró formalmente en la campaña de TeamPCP, reflejando un cambio en el que la seguridad de las dependencias de código abierto se trata ahora como un asunto de política de ciberseguridad nacional, en lugar de una mera higiene de desarrollo individual.
El ataque de Miasma no es la mayor brecha en la cadena de suministro de la historia, ni la más sofisticada. Pero puede ser la más instructiva para entender lo que viene a continuación.
Primero, los frameworks de ataque de código abierto han armado el ecosistema. La decisión de TeamPCP de publicar Mini Shai-Hulud bajo una licencia MIT es una estrategia deliberada: armar un ejército de imitadores, crear un caos de atribución y obligar a los defensores a protegerse contra un número desconocido de actores independientes que usan el mismo manual . Esto no es teórico: la actividad de imitación se documentó en los cinco días posteriores a la publicación, y la atribución de Miasma sigue siendo incierta semanas después
.
Segundo, el hook preinstall de npm es una vulnerabilidad sistémica. El ataque explota repetidamente una característica diseñada para scripts de compilación legítimos pero que carece de controles suficientes en la ejecución de scripts de ciclo de vida . La aparición de
binding.gyp como un vector de ejecución adicional en la variante Phantom Gyp demuestra que los atacantes buscan activamente nuevos ciclos de vida que secuestrar . Las restricciones a nivel de registro sobre
preinstall y otros scripts de ciclo de vida son ahora una prioridad urgente.
Tercero, los asistentes de codificación con IA se han convertido en una superficie de ejecución. Miasma es uno de los primeros ataques a la cadena de suministro documentados que apunta específicamente a Claude Code, Cursor, Copilot y Gemini CLI como mecanismos de entrega de cargas útiles a través de archivos de reglas maliciosas . Cuando un desarrollador clona un repositorio y lo abre, la herramienta de IA diseñada para ayudarle a escribir mejor código puede, en cambio, ejecutar código malicioso. Este vector probablemente se expandirá a medida que el desarrollo asistido por IA se convierta en el flujo de trabajo predeterminado.
Cuarto, los pipelines de CI/CD son ahora los objetivos de mayor valor. La capacidad del gusano para extraer tokens OIDC de la memoria del ejecutor y producir paquetes con certificaciones de procedencia SLSA válidas significa que la verificación criptográfica estándar —el estándar de oro para la integridad de la cadena de suministro— puede ser derrotada . Si las comprobaciones de procedencia se superan, los defensores no tienen señal para detectar el compromiso. Asegurar los pipelines de CI/CD contra la exposición de credenciales ya no es opcional.
Finalmente, la intervención gubernamental ha alcanzado la gestión de dependencias de código abierto. El manual actualizado del NCSC no es un aviso, es una petición concreta para que las empresas británicas integren la seguridad de la cadena de suministro en sus procesos de contratación . Las organizaciones que tratan la revisión de dependencias como una auditoría única, en lugar de un proceso continuo, están operando con una postura de seguridad anterior a Miasma.
Comments
0 comments