[nerd project]
[tech]14 de mayo de 2026 3 min read

El gusano Shai-Hulud y npm: 6 pasos para proteger tu empresa

El gusano Shai-Hulud y npm: 6 pasos para proteger tu empresa

El gusano Shai-Hulud es la amenaza de cadena de suministro más sofisticada vista hasta ahora en npm y PyPI, y si tu equipo instaló cualquiera de los 172 paquetes comprometidos desde el 11 de mayo, debes asumir que estás infectado. No es alarmismo: el malware sobrevive al desinstalar el paquete, persiste tras reinicios y roba credenciales de más de 100 rutas de archivo distintas.

Cómo llegamos hasta aquí

La campaña TeamPCP lleva meses perfeccionando sus técnicas. Este ataque encadenó tres vulnerabilidades distintas: un fork malicioso de TanStack/router, envenenamiento de caché de GitHub Actions y extracción de tokens OIDC mediante lectura directa de /proc/pid/mem. Lo más perturbador es que TanStack tenía todo en orden sobre el papel: publicación OIDC confiable, provenance firmado y 2FA en cada cuenta de mantenedor. El ataque funcionó igualmente.

Qué ocurrió exactamente

Entre las 19:20 y 19:26 UTC del 11 de mayo, el gusano publicó 84 versiones maliciosas en 42 paquetes @tanstack/*. En 48 horas, la campaña se expandió a 172 paquetes y 403 versiones maliciosas. CVE-2026-45321 tiene una puntuación CVSS de 9.6. OX Security reportó 518 millones de descargas acumuladas afectadas. Cada versión maliciosa llevaba una atestación de procedencia SLSA Build Level 3 válida. La procedencia era real. Los paquetes estaban envenenados. El gusano cruzó de npm a PyPI en horas: el paquete mistralai==2.4.6 ejecuta código al importarlo, no al instalarlo, lo que anula las mitigaciones estándar de npm.

El daño no se limita a credenciales clásicas. El gusano roba:

  • Claves AWS, SSH y tokens de GitHub PAT
  • Tokens de HashiCorp Vault y configuraciones de Kubernetes y Docker
  • Configuraciones de agentes de IA Claude y Kiro, incluidos tokens MCP
  • Contraseñas de gestores como 1Password y Bitwarden
  • Wallets de criptomonedas e historial de shell

Lo que esto significa de verdad

Como explica Peyton Kennedy de Endor Labs: "El alcance OIDC es el control real que importa aquí, no la procedencia, no el 2FA. Si tu pipeline de publicación confía en todo el repositorio en lugar de un flujo de trabajo específico en una rama específica, un commit sin historial es suficiente para obtener un token de publicación válido. Es una corrección de una línea." El sector ha invertido años en SLSA y firmas de paquetes creyendo que eso resolvería la seguridad de la cadena de suministro. Este ataque demuestra que la confianza en el proceso de construcción no equivale a seguridad del artefacto.

Qué cambia a partir de ahora

Este incidente redefinirá cómo la industria trata los agentes de IA en entornos de desarrollo: el gusano los considera parte del entorno de ejecución de confianza y los usa como vector adicional. Los registros npm y PyPI necesitan controles de ejecución en tiempo de importación que hoy no existen. Las empresas que dependan de lockfiles y --ignore-scripts como única defensa descubrirán que eso no cubre Python.

Los 6 pasos accionables que debes ejecutar ahora:

  1. Auditar todos los entornos que instalaron paquetes npm o PyPI desde el 11 de mayo
  2. Revocar y rotar credenciales después de aislar la máquina, nunca antes
  3. Inspeccionar .claude/settings.json y .vscode/tasks.json en todos los proyectos
  4. Revisar LaunchAgents en macOS y unidades systemd en Linux buscando persistencia
  5. Restringir el scope OIDC a workflows y ramas específicas en todos los pipelines
  6. Tratar mistralai==2.4.6 como comprometido y auditar cualquier entorno que lo haya importado

La pregunta que el sector debe responder es si los registros de paquetes están preparados para tratar los agentes de IA como superficie de ataque de primera clase, porque los atacantes ya lo hacen.

Fuente: VentureBeat

#ciberseguridad#npm#cadena de suministro#malware
Read in English: English version →
share:Telegram𝕏

[comentarios]

1000 caracteres restantes