BlueOnyx
CiberseguridadDevOpsSupply ChainnpmOpen Source

Miasma: 157 bytes para comprometer toda una cadena npm

Blue OnyxPublicado el 7 juin 20265 min de lectura
Figurine Tux Linux devant un terminal de développeur

Introducción

En cuestión de pocas horas, un gusano informático bautizado Miasma obligó a GitHub a deshabilitar 73 repositorios pertenecientes a las organizaciones Microsoft, Azure, Azure-Samples y MicrosoftDocs. Se trata del desenlace de una campaña iniciada discretamente el 3 de junio de 2026 mediante la infección de decenas de paquetes npm, y que ilustra, una vez más, la fragilidad estructural de las cadenas de suministro de software modernas.

Una técnica de evasión sin precedentes: Phantom Gyp

Lo que distingue a Miasma de los ataques clásicos al ecosistema npm no es su alcance, sino su método. Los scripts preinstall y postinstall —los vectores habituales que las herramientas de seguridad llevan años monitoreando— no tienen nada que ver aquí. Phantom Gyp se apoya en un mecanismo completamente distinto: el archivo binding.gyp.

Este archivo de configuración, diseñado originalmente para compilar módulos nativos de Node.js mediante node-gyp, no figura en las listas de control estándar de lifecycle scripts de npm. Con apenas 157 bytes, los atacantes lo convirtieron en un vector de ejecución de código arbitrario activado en el momento de un simple npm install, sin generar ninguna alerta en la mayoría de los pipelines DevSecOps en uso. Sin CVE, sin hooks monitoreados: únicamente un mecanismo legítimo de compilación reutilizado con fines maliciosos.

Una propagación automatizada a gran velocidad

Miasma no solo se ejecuta: se replica. Una vez robados los tokens npm de un mantenedor, el gusano republica versiones maliciosas de todos los paquetes accesibles desde esa cuenta, desencadenando una reacción en cadena. En menos de dos horas el 3 de junio, 57 paquetes habían sido comprometidos y más de 286 versiones corruptas habían sido publicadas en el registro npm.

Entre los primeros afectados figuraban paquetes del namespace @redhat-cloud-services, así como SDKs de alta adopción como @vapi-ai/server-sdk (más de 408 000 descargas mensuales). El malware exfiltra sistemáticamente tokens de AWS, GCP y Azure, credenciales de GitHub y npm, y secretos de HashiCorp Vault y Kubernetes, todo ello transferido hacia repositorios de GitHub controlados por los atacantes y utilizados como buzones cifrados.

Fue mediante un commit malicioso inyectado en el repositorio Azure/durabletask —a través de una cuenta de colaborador previamente comprometida— como la infección alcanzó las organizaciones de Microsoft, lo que llevó a GitHub a reaccionar el 6 de junio deshabilitando los 73 repositorios afectados.

Implicaciones para sus equipos técnicos

El ataque Miasma plantea un problema de fondo que los equipos de desarrollo y los CISOs ya no pueden ignorar: los controles de seguridad centrados en los lifecycle scripts de npm son insuficientes. Un proyecto puede incorporar npm audit, verificaciones de firma mediante Sigstore o attestations de procedencia, y seguir siendo vulnerable si un vector de ejecución alternativo como binding.gyp queda fuera del perímetro de supervisión.

Varias acciones concretas resultan imprescindibles:

  • Auditar los archivos binding.gyp en las dependencias: su presencia no es intrínsecamente maliciosa, pero debe desencadenar una revisión sistemática.
  • Restringir los permisos de los tokens de npm y GitHub en CI/CD: un token comprometido no debería otorgar acceso a todo el namespace de una organización.
  • Aislar los entornos de instalación: ejecutar npm install en un sandbox sin acceso a red saliente limita considerablemente la capacidad de exfiltración.
  • Monitorizar las nuevas versiones publicadas de los paquetes críticos del proyecto, no solo sus vulnerabilidades conocidas.

La cadena de suministro de software, nuevo terreno ofensivo

Miasma no es un incidente aislado. Se inscribe en una tendencia consolidada: los actores maliciosos han comprendido que los registros de paquetes públicos constituyen el eslabón débil de las organizaciones modernas. Cualquier equipo que consuma dependencias de código abierto —es decir, prácticamente todos— está potencialmente expuesto.

En un contexto en el que NIS2 exige a las empresas europeas demostrar un control efectivo de su cadena de suministro digital, incidentes como Miasma ya no son simples alertas técnicas: son señales de riesgo organizacional que deben integrarse en los planes de gestión de riesgos de ciberseguridad.

Compartir