Ataque con malware en la cadena de suministro de npm contra mantenedores de ESLint Prettier Plugin
22 de julio de 2025
0 minutos de lecturaDesde el 19 de julio de 2025, un incidente de seguridad en la cadena de suministro de npm ha estado atacando a mantenedores de paquetes populares de código abierto en el registro de npm.
Resumen rápido del malware de npm
Atacantes registraron el dominio npnjs.com (un caso de typosquatting que imita al registro oficial npmjs.com).
Los mantenedores fueron víctimas de una campaña de phishing por correo electrónico que secuestró sus credenciales del registro de npm.
Paquetes afectados:
eslint-config-prettier,eslint-plugin-prettier,synckit,@pkgr/core,napi-postinstallygot-fetch.Los mantenedores restablecieron sus credenciales de token de npm, marcaron los paquetes con malware como obsoletos y el registro de npm ya eliminó las versiones maliciosas.
Ejemplo de aviso de Snyk Vulnerability Database sobre la versión maliciosa de got-fetch:

El paquete eslint-config-prettier registra 30,000,000 de descargas por semana hasta la fecha y su adopción ha crecido de forma constante, lo que demuestra el impacto de este malware.

Sobre el ataque a los plugins de Prettier en npm
Para publicar paquetes en el registro oficial npmjs.com, se necesita una cuenta con una dirección de correo electrónico válida. Cuando se publican paquetes de npm, esta información queda disponible de forma abierta y amplia para que cualquiera pueda consultarla.
Por ejemplo, aquí está la información de mi propio paquete npq, que demuestra lo fácil que es obtener los correos electrónicos de los mantenedores:

Lo anterior no es ninguna novedad. Ahora, los atacantes pueden usar esta información para buscar posibles vulnerabilidades, como:
Dominios de correo electrónico vencidos que pueden comprar y usar para iniciar un proceso de restablecimiento de contraseña y obtener acceso para publicar nuevas versiones.
Ataques de spear phishing por correo electrónico dirigidos a robar las credenciales de token de npm.
En este ataque reciente, los atacantes eligieron precisamente esta última vía y engañaron a los mantenedores para que siguieran un proceso por correo electrónico que recopiló sus credenciales del registro de npm. Ahora, los atacantes obtuvieron esas credenciales y pueden publicar nuevas versiones de estos paquetes haciéndose pasar por los mantenedores.
Este fue exactamente el escenario que ocurrió con eslint-config-prettier, uno de los paquetes de referencia, en el que se publicaron varias versiones infectadas con malware para Windows.
El mantenedor lo confirmó y presentó pruebas en la página de GitHub del plugin ESLint Config Prettier, donde mostró el correo electrónico que recibió:

Infección virtual
¿Qué pasa cuando el malware infecta a un mantenedor? No es difícil que se propague a otros mantenedores si se publica una versión maliciosa de un paquete popular que compromete a alguien.
Esto fue precisamente lo que ocurrió: las repercusiones del malware de eslint-config-prettier, aunque se publicó por poco tiempo, ya afectaron a otros mantenedores: los del paquete de npm is. Por ello, las versiones 3.3.1 y 5.0.0 del paquete de npm is se marcaron como malware. Desde entonces, el problema se corrigió (el 19 de julio a las 9:21 p. m. UTC+3) y se publicó la versión corregida 3.3.2. Restablecer ese paquete tomó 6 horas, según el mantenedor Jordan Harband.
Cómo protegerte de los ataques a la cadena de suministro de npm
Primero, implementa los siguientes pasos de respuesta a incidentes:
Asegúrate de no usar ninguna de las versiones conocidas con malware de los paquetes mencionados en este incidente y de que no estén instaladas en tus sistemas de CI, implementaciones de producción ni entornos de tus equipos de desarrollo.
Si encuentras una infección, rota los secretos, audita los activos de los registros de paquetes internos y externos de tu empresa y sigue las pautas de tu equipo de seguridad interno.
Como medida de seguridad proactiva, te recomiendo seguir estas prácticas recomendadas de seguridad para protegerte de futuros incidentes de malware, tanto si eres mantenedor como desarrollador:
Activa la autenticación de dos factores (2FA) en tu cuenta del registro de npm, especialmente si eres mantenedor, ya que el alcance potencial del impacto es considerable.
Usa la CLI de código abierto npq para aplicar heurísticas antes de instalar paquetes de npm.
Agrega
ignore-scripts=trueal archivo de configuración.npmrcde tu usuario para que los scriptspostinstallno se ejecuten automáticamente durante la instalación.
Este ataque a la cadena de suministro de npm destaca la necesidad fundamental de contar con medidas de seguridad sólidas. Para comprender mejor estas amenazas y conocer estrategias proactivas que te ayuden a proteger tus proyectos, explora la lección de Snyk Learn sobre ataques a la cadena de suministro.
Capacitación en seguridad para desarrolladores de Snyk
Aprende de expertos cuando sea relevante, directamente en tu propio código.
