Saltar al contenido
SeguridadPublicado el 5 min de lectura

Ataque a npm adultera paquetes como chalk y debug para cambiar direcciones de billetera: qué pasó y cómo protegerse

El 8 de septiembre de 2025, 18 paquetes de npm fueron contaminados con código que reescribe el destino de transferencias en cripto. Los delincuentes ganaron poco, según los primeros relatos, pero el ataque muestra por qué la dirección debe verificarse fuera de la pantalla del sitio.

Referencia histórica: 16 de septiembre de 2025. Publicado en este sitio el 2 de noviembre de 2026. Las fechas del texto identifican el período tratado.

Monitor encendido que muestra líneas de código de programación sobre fondo oscuro
Foto: Pankaj Patel / Unsplash
En este artículo

En resumen

  • El 8 de septiembre de 2025, un mantenedor de npm cayó en phishing y 18 paquetes populares, entre ellos chalk y debug, recibieron código malicioso; sumados, superan los 2.000 millones de descargas por semana.
  • El código se ejecuta en el navegador, intercepta fetch, XMLHttpRequest y billeteras como window.ethereum, y cambia direcciones de Ethereum, Bitcoin, Solana, TRON, Litecoin y Bitcoin Cash por direcciones del atacante.
  • Las versiones estuvieron en línea unas dos horas y, según los primeros relatos, dejaron poco a los delincuentes. El método, sin embargo, sirve de modelo para estafas más exitosas.
  • La defensa práctica es verificar la dirección de destino en el dispositivo de la billetera y por un segundo canal, y hacer una prueba con un monto pequeño.

São Paulo, 16 de septiembre de 2025 — El lunes 8 de septiembre, desarrolladores de todo el mundo recibieron una alerta: se habían publicado versiones nuevas de paquetes tan básicos que casi todo proyecto de JavaScript los usa, como chalk y debug, con código malicioso. El objetivo no era robar contraseñas ni derribar servidores. Era más simple y más peligroso para quien maneja cripto: cambiar, en el navegador, la dirección de billetera a la que el usuario pretendía enviar dinero.

Paquetes del mantenedor comprometidos, según Aikido Security; con otros proyectos, Wiz listaba 24 el 9/9
18
Descargas semanales sumadas de los paquetes afectados
2.000 M+
Tiempo en que las versiones maliciosas estuvieron disponibles, según Wiz
~2 h
Redes cuyas direcciones el código intentaba cambiar: Ethereum, Bitcoin, Solana, TRON, Litecoin y Bitcoin Cash
6

Qué ocurrió

npm es el repositorio público de paquetes de JavaScript. Los proyectos de sitios y aplicaciones traen de allí bibliotecas ya hechas y, con ellas, las bibliotecas de las que estas dependen. Eso crea una cadena de suministro: quien vulnera una pieza pequeña y popular llega a miles de programas sin tocarlos.

El mantenedor Josh Junon, conocido como Qix, recibió un correo de phishing que imitaba al soporte de npm, enviado desde un dominio parecido (npmjs.help) registrado tres días antes, el 5 de septiembre. Al seguir el enlace e ingresar credenciales y el código de autenticación en dos pasos, entregó el control de la cuenta. Los atacantes publicaron versiones nuevas de 18 paquetes, entre ellos chalk 5.6.1, debug 4.4.2, ansi-styles, strip-ansi y color-convert. La empresa de seguridad Aikido señaló las versiones a las 13:16 UTC (10:16 en Brasilia), y el mantenedor confirmó la intrusión unas dos horas después. Al día siguiente, JFrog y Wiz informaron que la misma campaña también había alcanzado paquetes de DuckDB, otro proyecto.

  1. 05/09/2025Registro del dominio de phishing que imita al soporte de npm.
  2. 08/09, cerca de las 13:00 UTCSe toma la cuenta del mantenedor y se publican versiones maliciosas de los paquetes.
  3. 08/09, 13:16 UTCAikido señala las versiones adulteradas.
  4. 08/09, 15:15 UTCEl mantenedor confirma la intrusión y comienza la limpieza; las versiones estuvieron disponibles unas dos horas, según Wiz.
  5. 09/09/2025JFrog y Wiz informan que la campaña también alcanzó paquetes de DuckDB; empresas de seguridad publican listas de indicadores.

Cómo el código cambiaba las direcciones

El código solo actuaba en navegadores, cuando estaba abierta una página que usaba los paquetes. Se enganchaba en funciones que el sitio usa para comunicarse con la red y con la billetera, y alteraba los datos en el camino.

1InterceptarEnvolvía las llamadas fetch y XMLHttpRequest y las interacciones con billeteras como window.ethereum, y así pasaba a ver y alterar el tráfico.
2ReconocerBuscaba, por patrón de texto, direcciones de Ethereum, Bitcoin, Solana, TRON, Litecoin y Bitcoin Cash.
3ReemplazarCambiaba cada dirección por una del atacante, elegida por su parecido con la original para pasar inadvertida en una verificación rápida.
4Adulterar la transacciónEn Ethereum y Solana, reescribía destinatario y autorizaciones de token antes de la firma. La pantalla mostraba el monto correcto, pero la orden iba a otro lugar.

El parecido es el punto central. Quien verifica solo el comienzo y el final de la dirección puede ser engañado por una dirección elegida justamente por tener inicio y final parecidos. Es la misma lógica del envenenamiento de direcciones, pero aplicada dentro del software y no en el historial de la billetera.

Cuánto se llevaron los delincuentes

Poco, según los primeros relatos. Wiz, citando publicaciones de investigadores en redes sociales, describió la ganancia como “mínima”, y no hay un valor consolidado por una fuente primaria. Dos factores ayudan a explicarlo: las versiones estuvieron en línea unas dos horas, y el código afectaba solo páginas de aplicaciones que actualizaron la dependencia y fueron publicadas en ese intervalo, muchas de ellas sin ningún flujo de pago en cripto.

Poco perjuicio no es poco riesgo

El alcance técnico fue enorme. Si una empresa hubiera publicado su página de pago con una versión contaminada, la orden habría sido desviada sin aviso en la pantalla. El ataque fue un ensayo de escala, no un fracaso del método.

Cómo protegerse al pagar en cripto

Para quien desarrolla, las reglas son: fijar versiones con un archivo de bloqueo (package-lock.json), instalar con npm ci, esperar algunos días antes de adoptar versiones recién publicadas y proteger las cuentas de publicación con llaves de seguridad físicas, que no se entregan en un sitio falso como un código digitado. Para quien solo paga, el principio es otro: la pantalla de la computadora no es prueba de la dirección. Fue la misma lección del ataque a Bybit, en que la pantalla mostraba el destino correcto y la firma autorizaba otro.

  1. Verifique la dirección en el dispositivo de la billetera (billetera de hardware o aplicación del celular), no en el sitio ni en la extensión del navegador.
  2. Compare la dirección completa, carácter por carácter, con la que el proveedor informó por un canal fuera de la computadora, como una llamada a un teléfono ya conocido.
  3. En la red TRON, la dirección TRC-20 empieza con T y tiene 34 caracteres; vea cómo leerla en qué es la red TRON.

La verificación fuera de la computadora vale porque rompe la dependencia de la misma máquina. Un navegador adulterado puede mostrar una dirección cambiada igualmente en el sitio, en el correo abierto en el webmail y en la pantalla de confirmación, pero no altera el mensaje enviado por teléfono ni lo que aparece en el dispositivo de la billetera. El envío de prueba, la lista de billeteras aprobadas y la doble aprobación completan la rutina y están en la guía contra el envenenamiento de direcciones.

Qué muestra el episodio

El caso refuerza un patrón visto en 2025: el eslabón más débil suele ser una persona o una credencial, y no la criptografía. Un correo convincente a una sola persona bastó para alcanzar bibliotecas presentes en incontables proyectos. La respuesta pasó por mantenedores, empresas de seguridad y el propio npm, y las versiones salieron de línea en unas dos horas, pero la verificación final del destino sigue siendo responsabilidad de quien envía el dinero.

Preguntas frecuentes

¿Qué fue el ataque a npm de septiembre de 2025?

El 8 de septiembre de 2025, un mantenedor fue víctima de phishing y 18 paquetes populares, como chalk y debug, recibieron versiones maliciosas. El código actuaba en el navegador y cambiaba direcciones de billetera en transacciones de cripto. Las versiones estuvieron disponibles unas dos horas.

¿Cuánto dinero se robó en el ataque?

Poco, según los primeros relatos: Wiz, citando a investigadores, describió la ganancia como “mínima”, y no hay un valor consolidado. El alcance técnico, sin embargo, fue enorme: los paquetes suman más de 2.000 millones de descargas semanales.

¿Cómo saber si la dirección de pago fue cambiada?

Verifique la dirección completa en el dispositivo de la billetera, no solo en la pantalla de la computadora, y compárela con la que el proveedor pasó por otro canal, como el teléfono. Una transacción de prueba con un monto pequeño también reduce el riesgo.

¿Se vieron afectadas las direcciones TRON?

El código buscaba direcciones de seis redes, incluida TRON, pero la transacción totalmente adulterada (destinatario y autorización) aparece descrita para Ethereum y Solana. En cualquier red, la verificación de la dirección por un segundo canal sigue siendo la defensa.

  • Hackeos
  • Billeteras
  • Seguridad digital
  • Ingeniería social
  • Estafas
  • TRON
  • USDT

¿Te resultó útil? Compártelo con quien paga a proveedores en el exterior.

Fuentes

  1. npm debug and chalk packages compromised · Aikido Security, 8 sept 2025
  2. Widespread npm supply chain attack: breaking down impact and scope across debug, chalk and more · Wiz, 9 sept 2025
  3. Ataque a pacotes com 2 bilhões de downloads semanais abala ecossistema npm · Canaltech, 12 sept 2025

Contenido informativo, sin recomendación de inversión. Las marcas de terceros citadas pertenecen a sus titulares; la mención es periodística y no indica asociación ni vínculo con Swapo Finance.

Para importadores

Pagos internacionales con la velocidad del Pix y las reglas del Banco Central.

Convierte reales en USDT y envíalos al proveedor en la red TRON. Tarifa única mostrada antes, política de segregación patrimonial, atención humana. Activo virtual sin cobertura del FGC; solicitud de autorización presentada ante el BCB.