Ataque a cadena de suministro compromete 144 paquetes npm de Mastra
Un atacante comprometió una cuenta de colaborador olvidada en npm para inyectar un backdoor RAT en 142 paquetes del framework Mastra, con más de 1.1 millones de descargas semanales combinadas.
Lo que ocurrió
El 17 de junio de 2026, entre la 01:12 y las 02:39 UTC, un atacante ejecutó una campaña automatizada de 88 minutos que republicó 142 paquetes bajo el scope @mastra de npm con una dependencia inyectada: easy-day-js, un typosquat del popular paquete dayjs.
El origen del problema fue una cuenta de colaborador llamada ehindero cuyo acceso de publicación al scope @mastra nunca fue revocado. El atacante publicó primero una versión limpia de easy-day-js@1.11.21 para ganar credibilidad, luego en minutos lanzó la versión 1.11.22 con el payload malicioso.
El impacto técnico
El hook postinstall del paquete malicioso (setup.cjs) realizó las siguientes acciones al instalarse:
- Deshabilitó la verificación TLS
- Escribió marcadores en directorios temporales
- Descargó un payload de segunda etapa desde infraestructura C2 del atacante
- Lo ejecutó como proceso en segundo plano desvinculado
- Se eliminó para borrar evidencia forense
El paquete más afectado es @mastra/core con aproximadamente 918,000 descargas semanales. Cualquier estación de trabajo, runner de CI o sistema de build que instaló paquetes @mastra/* después del 16 de junio de 2026 debe considerarse comprometido.
Qué deben hacer las organizaciones afectadas
Los pasos de remediación recomendados son inmediatos y contundentes:
- Revertir a versiones de paquetes anteriores al incidente
- Rotar todas las credenciales: tokens npm, tokens GitHub, claves de proveedores cloud, API keys de LLMs, secretos de CI/CD, llaves SSH y credenciales de bases de datos
- Tratar cualquier sistema afectado como completamente comprometido
- Revocar accesos de colaboradores inactivos como medida preventiva futura
Contexto más amplio
Este ataque ilustra un vector de riesgo sistémico en el ecosistema open source: las cuentas de colaboradores que retienen privilegios de publicación indefinidamente. La combinación de typosquatting y el mecanismo de resolución semver de npm (^) permitió que el payload se propagara automáticamente a cualquier instalación que resolviese actualizaciones.
Fuente: The Hacker News | Snyk