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 chalkdebugsupports-coloransi-stylesstrip-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.

¿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.
Ataque npm. Fragmento de código JavaScript ofuscado de un paquete npm sospechoso.
Ejemplo de código ofuscado encontrado en un posible ataque a través de npm. ¡Precaución!

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 o yarn.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.

Categorizado en:

Novedades,