La comunidad técnica investiga un ataque a la cadena de suministro de NPM que ha puesto en el punto de mira a bibliotecas de JavaScript de uso masivo. Según múltiples equipos de seguridad, los agresores colaron un malware con funciones de crypto-clipper en paquetes muy extendidos, con potencial para alterar transacciones y desviar criptomonedas.
Aunque el alcance potencial es enorme por la popularidad de estas dependencias en el ecosistema JavaScript, los primeros análisis apuntan a un impacto económico limitado: se habrían movido cantidades pequeñas, por debajo de unos pocos cientos de dólares, mientras los proveedores y el registro actuaban para retirar versiones manipuladas.
Cómo se ha perpetrado la intrusión
La intrusión comenzó con correos de phishing que imitaban al soporte oficial de npm, exigiendo a mantenedores de paquetes que actualizaran su autenticación de dos factores en un plazo urgente. Un sitio falso capturó credenciales y códigos, lo que permitió a los atacantes tomar el control de una cuenta con amplios permisos (asociada en la comunidad al alias «Qix») y publicar versiones adulteradas de varias utilidades.
Investigadores como Aikido Security y el colectivo JDSTAERK describen una campaña capaz de modificar contenido en sitios, interceptar llamadas a APIs y alterar lo que cree firmar el usuario, elevando el riesgo para servicios web que integran estas librerías a través de cadenas de dependencias profundas.

Paquetes afectados y alcance
La brecha afectó a utilidades muy básicas presentes en multitud de proyectos, por lo que incluso equipos que no las instalan de forma directa podrían haber estado expuestos a través de dependencias transitivas. Entre los nombres citados por firmas de seguridad y desarrolladores se encuentran:
- chalk, chalk-template, strip-ansi, slice-ansi, wrap-ansi, supports-color
- color-convert, color-name, color-string
- ansi-regex, ansi-styles, has-ansi
- debug, error-ex, is-arrayish, simple-swizzle
- supports-hyperlinks, backslash, proto-tinker-wc
Estas piezas de software acumulan millones de descargas semanales y más de mil millones en cómputo histórico, actuando como ladrillos fundamentales para servidores, herramientas de línea de comandos y aplicaciones web modernas.
Cómo opera el malware
El código malicioso funcionaba como un crypto-clipper: al detectar entornos con monederos de software (por ejemplo, extensiones como MetaMask), interceptaba los datos de las transacciones justo antes de la firma y sustituía la dirección de destino por otra controlada por los atacantes.
Si no identificaba un wallet activo, el implante intentaba una exfiltración pasiva de información hacia servidores externos. En escenarios con monedero activo, además de manipular llamadas a la API, monitorizaba el portapapeles para reescribir direcciones copiadas por el usuario, un truco clásico en este tipo de fraudes.
Los especialistas remarcan que quienes validan en pantalla los detalles en una billetera de hardware cuentan con una barrera física que frustra este vector: la confirmación final se hace en el dispositivo y la dirección mostrada no puede ser alterada por el navegador o la web.
Impacto real hasta ahora
A pesar de la magnitud de la exposición, el dinero movido por los atacantes habría sido muy reducido (decenas a pocos cientos de dólares), de acuerdo con distintos rastreos en cadena hechos públicos por investigadores. Varios proveedores avisaron de inmediato y el registro deshabilitó las publicaciones comprometidas a las pocas horas.
Equipos de wallets y servicios cripto como Ledger, Trezor, MetaMask, Phantom o Uniswap comunicaron no verse afectados por las versiones adulteradas o estar protegidos por defensas en capas. Aun así, recomiendan revisar con lupa cada operación que se firme y mantener buenas prácticas de verificación.
La advertencia para desarrolladores es clara: si un proyecto actualizó dependencias durante la ventana de compromiso, conviene auditar el árbol completo y reconstruir con versiones limpias, incluso si la aplicación no maneja criptomonedas de forma directa.
Qué deben hacer desarrolladores y equipos
Más allá de la remediación inmediata, las organizaciones deberían adoptar controles de cadena de suministro que reduzcan la superficie de ataque en entornos JavaScript y Node.js. Entre las medidas prioritarias:
- Fijar versiones (pinning) y usar lockfiles; desactivar actualizaciones automáticas en producción.
- Verificar firmas, checksums y procedencia; implementar políticas de revisión previa a publicación.
- Activar 2FA con llaves de seguridad FIDO y rotar tokens y secretos expuestos.
- Integrar escáneres de dependencias y SBOM; monitorizar cambios inesperados en paquetes críticos.
- Reproducir builds en limpio y hacer rollback rápido ante señales de compromiso.
Para usuarios finales, el consejo pasa por comprobar la dirección y el importe en el dispositivo antes de firmar, desconfiar de ventanas emergentes inesperadas y pausar operaciones si se detectan comportamientos extraños en webs o dApps habituales.
Cronología y protagonistas
La comunidad detectó la campaña a inicios de semana, momento en el que figuras del sector como el CTO de Ledger, Charles Guillemet, alertaron del riesgo por la penetración de estas librerías en casi cualquier pila de JavaScript. Pocas horas después, equipos como Blockaid y Aikido compartieron listas de paquetes y artefactos analizados.
El mantenedor vinculado a la cuenta comprometida confirmó en redes que fue víctima de un engaño de restablecimiento de 2FA y pidió disculpas mientras coordinaba con npm la retirada de las publicaciones maliciosas. El proveedor del registro indicó estar trabajando con investigadores para cerrar flecos y reforzar controles.
Aunque todo apunta a un daño económico limitado, el episodio deja claro que la seguridad del ecosistema JavaScript depende de proteger identidades de mantenedores, endurecer la publicación de paquetes y asumir que las dependencias son un eslabón crítico; reforzar estos puntos reduce la probabilidad de que un incidente similar vuelva a abrir puertas a los atacantes.
