Skip to main content

Ataque a la cadena de suministro de npm mediante el compromiso de un mantenedor de código abierto

Escrito por
Introducing open source security runtime monitoring

8 de septiembre de 2025

0 minutos de lectura

El lunes 8 de septiembre, un reconocido desarrollador de código abierto, ~qix, fue víctima de un ataque de phishing por correo electrónico. ~qix es autor y mantenedor de una gran cantidad de paquetes npm populares y cayó en este ataque después de responder a un mensaje enviado desde la dirección support [at] npmjs [dot] help.

Esto permitió que el atacante tomara el control de su cuenta de npm y pudiera publicar versiones maliciosas de los paquetes a los que Qix tenía acceso privilegiado.

Actualización del 9 de septiembre: se agregaron nuevos paquetes npm afectados.

Actualización del 10 de septiembre: se agregó un nuevo paquete npm afectado.

¿Qué ocurrió?

El desarrollador de código abierto fue víctima de un correo electrónico de phishing que permitió que un atacante accediera a su cuenta de npm. Esto le permitió inyectar código malicioso en muchos paquetes npm muy populares y crear un ataque a la cadena de suministro.

Hasta el momento, este es el único mantenedor de código abierto conocido que fue blanco del ataque. Sin embargo, podría haber otros desarrolladores de alto perfil afectados cuyos casos aún no se hayan reportado.

¿Cómo se llevó a cabo?

El atacante usó ingeniería social para enviar un correo electrónico de phishing dirigido a un prolífico desarrollador de código abierto. El correo engañó al desarrollador para que se autenticara y eludiera los controles de seguridad, lo que le dio al atacante acceso a la cuenta. Luego, el atacante pudo inyectar malware en cualquiera de los paquetes populares de código abierto sobre los que el desarrollador tenía permisos privilegiados y, por lo tanto, publicar nuevas versiones de esos paquetes con el malware.

Cuando se ejecuta en un navegador, el código malicioso escucha el tráfico de red y se enfoca en las transacciones de criptomonedas. El código inyectado en los paquetes activa un hook cuando detecta una billetera Web3. Una vez activado, intercepta y modifica cualquier transacción con valor en ETH y la redirige a otra dirección, presuntamente controlada por el atacante. El código malicioso también escucha las transacciones de intercambio o transferencia para alterarlas.

¿Qué datos fueron el blanco del ataque?

El atacante buscaba billeteras de criptomonedas disponibles en los navegadores de los usuarios para vaciar sus fondos, al redirigir a sus propias direcciones las transacciones o aprobaciones firmadas por los usuarios. Por el momento, no se cree que el ataque haya tenido como objetivo otros datos.

Paquetes y versiones afectados

Cronología del ataque

~1:00 p. m. UTC: se publica el primer grupo de paquetes comprometidos detectados

2:16 p. m. UTC: se alerta al desarrollador sobre un posible compromiso de su cuenta en la plataforma social Blue Sky

3:16 p. m. UTC: el desarrollador confirma el compromiso de su cuenta mediante una publicación en Blue Sky y notifica el incidente a npm

5:17 p. m. UTC: npm reconoce la vulneración y trabaja para eliminar los paquetes comprometidos

7:59 p. m. UTC: npm informa al desarrollador que se eliminaron todas las versiones de los paquetes afectados

Indicadores de compromiso (IoC)

  • El usuario de GitHub SindreSorhus compartió un comando rápido para comprobar si este malware está en tu árbol de dependencias:

brew install rg

rg -uu --max-columns=80 --glob '*.js' _0x112fa8 
  • Si mantienes paquetes y recibiste un correo electrónico de support [at] npmjs [dot] help y seguiste sus instrucciones, es probable que también te hayas visto afectado.

¿Qué debes hacer?

  1. Este incidente sigue en curso, así que consulta las actualizaciones de esta publicación y las de Qix en GitHub.

  2. Comprueba si hay malware en tu árbol de dependencias con el script compartido por Sindre Sorhus

Usuarios de Snyk

Puedes usar Snyk SCA y Snyk SBOM para detectar y monitorear proyectos en toda la organización.

  1. Si no se ha ejecutado una prueba desde que se publicaron los avisos, vuelve a ejecutarla.

  2. Los proyectos de CLI deben volver a monitorearse para asegurarte de que se detecte tu árbol de dependencias actual.

Informes de Snyk

Hay un informe disponible en la lista de informes “Featured Zero-Day” de Snyk para este conjunto de vulnerabilidades. Si tienes un plan Enterprise, puedes acceder a este informe haciendo clic en “Reports” en el menú de navegación izquierdo (hay informes tanto a nivel de grupo como de organización). De forma predeterminada, se muestra el informe “Issues Detail”, pero puedes hacer clic en el menú desplegable “Change Report”, junto al título del informe, y seleccionar “Featured Zero-Day”. En la pantalla siguiente, selecciona el informe “npm Phishing Supply Chain Attack” en el menú desplegable Zero-Day.

Panel de informes de vulnerabilidades de día cero filtrado para un ataque a la cadena de suministro de npm mediante phishing, con cero problemas abiertos y tres resueltos

Sobre los ataques a la seguridad de la cadena de suministro

Este incidente se suma a otros ataques de seguridad recientes de este tipo. Ya hemos visto ataques a CI y a cuentas de mantenedores que permitieron secuestrar publicaciones:

Solicita una demo en vivo de Snyk para proteger el código abierto

Habla con nuestros expertos en seguridad para descubrir cómo Snyk puede ayudarte a usar software de código abierto de forma segura