El gusano npm de TanStack compromete más de 170 paquetes y vulnera 3.800 repositorios internos de GitHub
Un gusano de cadena de suministro que se propaga solo atacó 42 paquetes @tanstack/* npm el 11 de mayo y luego pivotó a través de una extensión maliciosa de Nx Console para VS Code para vulnerar los repositorios internos de GitHub. OpenAI, Mistral AI y Grafana Labs figuran entre las víctimas confirmadas.
A las 19:20 UTC del 11 de mayo de 2026, el grupo de amenazas TeamPCP publicó 84 versiones maliciosas de paquetes en 42 paquetes @tanstack/* de npm en seis minutos. Cuando un investigador externo detectó la anomalía — entre 20 y 26 minutos después — el gusano ya había comenzado a propagarse a PyPI y herramientas posteriores.
La cadena de ataque merece analizarse en detalle. El vector inicial fue un Pwn Request de tipo pull_request_target — una mala configuración documentada de GitHub Actions que permite que las pull requests de forks accedan a los secretos del repositorio. Combinado con envenenamiento de caché de GitHub Actions y extracción de tokens OIDC, el gusano obtuvo acceso suficiente para publicar paquetes envenenados de forma autónoma, sin intervención humana del operador tras el disparador inicial.
La segunda fase es donde la brecha escaló. La misma campaña publicó una versión maliciosa de la extensión Nx Console para VS Code — la versión 18.95.0 — el 18 de mayo a las 12:30 UTC. La extensión estuvo activa durante 18 minutos antes de ser eliminada a las 12:48 UTC. En ese intervalo, cualquier desarrollador con actualizaciones automáticas de extensiones habilitadas recibió un ladrón de credenciales que apuntaba a:
- Bóvedas de 1Password
- Archivos de configuración de Anthropic Claude Code (incluyendo tokens de sesión)
- Tokens de autenticación de npm
- Tokens de acceso personal de GitHub
- Credenciales AWS IAM
GitHub ha confirmado que 3.800 repositorios internos fueron accedidos mediante credenciales recopiladas a través de esta cadena. Las víctimas externas confirmadas incluyen OpenAI, Mistral AI, UiPath, Guardrails AI, OpenSearch y Grafana Labs. El total entre npm y PyPI alcanzó más de 170 paquetes comprometidos y más de 400 versiones maliciosas publicadas.
Qué deben hacer los desarrolladores ahora:
Si tenías la extensión Nx Console instalada con actualizaciones automáticas habilitadas el 18 de mayo, trata todas las credenciales almacenadas en los sistemas atacados como comprometidas. Rota:
- Todos los tokens de publicación de npm
- Todos los tokens y aplicaciones OAuth de GitHub
- Todas las claves de acceso IAM de AWS usadas en CI/CD
- Cualquier elemento de la bóveda de 1Password accesible desde tu máquina de desarrollo
- Archivos de sesión de Claude Code (directorio
~/.claude/)
Revisa el historial de actualizaciones de extensiones en VS Code: Extensions: Show Installed Extensions → ... → Show Extension Update History para verificar si alguna vez estuvo instalada la versión 18.95.0.
Los paquetes @tanstack/* fueron limpiados y republicados por los mantenedores. Verifica que estás ejecutando las últimas versiones limpias antes de tu próximo install o deploy. El equipo de TanStack ha publicado un postmortem detallado en su blog.
La lección sistémica es la que la comunidad de seguridad ha repetido desde el incidente de event-stream en 2018: los espacios de nombres de paquetes de confianza son objetivos de alto valor precisamente por la confianza que los desarrolladores les otorgan sin inspección. Los paquetes de TanStack están instalados en millones de proyectos JavaScript. Una ventana de publicación de seis minutos fue suficiente para alcanzar toda esa población.
La mala configuración de pull_request_target de GitHub que habilitó este ataque no es oscura. GitHub la ha documentado como un patrón de riesgo conocido. Audita tus flujos de trabajo de CI esta semana.
Lecturas relacionadas
- Ciberseguridad Copy Fail (CVE-2026-31431): El error de Linux de 9 años que le da acceso root a cualquier usuario local — sin condición de carrera
- Ciberseguridad CVE-2026-34197 en Apache ActiveMQ Está Siendo Explotado Activamente — Actualiza a 6.2.3 o 5.19.4 de Inmediato
- Ciberseguridad El malware OtterCookie de Corea del Norte se ocultó en un paquete npm falso de Gemini — Apunta a usuarios de Cursor, Claude y Windsurf