Posiblemente, este sea el ataque JS más grande de la historia.
La compañía Aikido Security ha detectado un ataque a gran escala en el ecosistema npm. Los atacantes publicaron versiones maliciosas de 18 bibliotecas populares de JavaScript, incluyendo chalk
, debug
, supports-color
, ansi-styles
, strip-ansi
y otras.
Estos paquetes se utilizan en millones de proyectos en todo el mundo; el número total de descargas en solo una semana supera los 2 mil millones.
Ataque a la cadena de suministro NPM
¿Cómo funcionaba el código malicioso?
El código JavaScript insertado se ocultaba dentro de las bibliotecas y se ejecutaba exclusivamente en el entorno del navegador. El objetivo principal era interceptar transacciones de criptomonedas mediante la suplantación de datos:
- Inserción en los métodos
fetch
,XMLHttpRequest
, y también en los objetos Web3 (window.ethereum
, etc.); - Seguimiento y suplantación de las direcciones de las billeteras con llamadas como
sendTransaction
,approve
,transfer
; - Uso de direcciones “similares” para la suplantación sin diferencias visuales;
- Manipulación de los parámetros de las transacciones en la fase de firma;
- Mantenimiento de la “normalidad” externa de la interfaz para que el usuario no note nada.

De esta manera, el ataque estaba dirigido al robo silencioso de criptoactivos directamente de las interfaces de las aplicaciones Web3.
¿Cómo obtuvieron acceso los atacantes?
Uno de los mantenedores, con acceso a parte de las bibliotecas, fue víctima de un ataque de phishing.
Recibió un correo electrónico de una dirección falsa support@npmjs.help, registrada el 5 de septiembre de 2025. Después de comprometer la cuenta, se publicaron las versiones maliciosas de los paquetes.
El autor más tarde confirmó el hackeo y eliminó algunas versiones, pero parte de las compilaciones maliciosas permanecieron disponibles, incluyendo simple-swizzle.
Lista de paquetes afectados: Ataque npm
Las bibliotecas infectadas más populares:
- chalk
- debug
- supports-color
- strip-ansi
- ansi-regex
- wrap-ansi
- color-name
- color-convert
- color-string
- chalk-template
- has-flag
- has-ansi
- slice-ansi
- error-ex
- simple-swizzle
- backslash
- y otras
La mayoría de ellas se utilizan de forma transitiva, a través de otras dependencias.
¿Qué deben hacer los desarrolladores?
- Verificar
package-lock.json
oyarn.lock
para detectar versiones infectadas. - Usar
npm audit
,snyk
,Safe Chain
o herramientas similares para analizar las dependencias. - Actualizar o fijar las versiones seguras de los paquetes.
- Si el proyecto trabaja con criptomonedas, verificar si hubo alguna comprometerse durante su uso.
¿Por qué es importante?
Este ataque se ha convertido en uno de los más grandes en la historia del ecosistema JavaScript y destaca la vulnerabilidad de las cadenas de suministro (supply chain) en el código abierto.
Incluso una pequeña vulnerabilidad o un ataque de phishing a un solo mantenedor puede poner en riesgo a millones de usuarios en todo el mundo.
Estén atentos a nuevas publicaciones.