El 18 de julio de 2025, una biblioteca de JavaScript de confianza con más de 31 millones de descargas semanales, eslint-config-prettier, fue objeto de un ataque selectivo a la cadena de suministro que pone de manifiesto lo vulnerables que pueden ser los ecosistemas de código abierto. La brecha de seguridad se inició con un correo electrónico de phishing que engañó al responsable del mantenimiento para que revelara su token. Utilizando las credenciales expuestas, el atacante publicó versiones no autorizadas del paquete, que contenían un script de postinstalación que ejecutaba un archivo DLL troyano en equipos Windows durante la instalación.
A continuación explicamos qué ocurrió, cómo se llevó a cabo el ataque y cómo OPSWAT pueden ayudar a defenderse de amenazas similares en el futuro.
Resumen del ataque
El popular paquete de linter de npm, eslint-config-prettier, se utiliza para desactivar reglas de ESLint innecesarias o conflictivas cuando se utiliza Prettier. Normalmente se incluye como dependencia de desarrollo en los entornos de desarrollo integrados (IDE) locales y en los procesos de integración continua (CI), pero eso no ha impedido que se convirtiera en un vehículo para el malware.
El ataque se desarrolló de la siguiente manera:
1. Un correo electrónico de phishing que simulaba proceder de support@npmjs.org engañó al responsable del mantenimiento para que hiciera clic en un enlace malicioso (creado mediante typosquatting como npnjs.com). Al seguir el enlace, el responsable del mantenimiento reveló sin saberlo su token de acceso a npm, que el atacante utilizó para publicar versiones maliciosas del paquete.
2. A continuación, el atacante utilizó el token de npm robado para publicar versiones maliciosas del eslint-config-prettier paquete. Según los informes de los desarrolladores, se han identificado cuatro versiones afectadas: 8.10.1, 9.1.1, 10.1.6 y 10.1.7
Además, dado que el atacante tenía acceso al token comprometido, también se vieron afectados otros paquetes mantenidos por el mismo autor, entre ellos: eslint-plugin-prettier, synckit, @pkgr/core, y napi-postinstall

3. El atacante añadió dos archivos sospechosos al código fuente: install.js y node-gyp.dll.
Cuando un usuario descarga e instala una de las versiones no autorizadas del paquete, el install.js se ejecuta el script, lo que activa un node-gyp.dll en sistemas Windows a través de rundll32

Técnicas de ataque utilizadas
Phishing e ingeniería social
El correo electrónico falso logró eludir con éxito las medidas básicas de protección del correo electrónico (SPF/DKIM/DMARC) y se hizo pasar por el servicio de asistencia de npm.
Typosquatting
Se utilizó un dominio engañoso (npnjs.com), diseñado para parecerse a npmjs.com, con el fin de robar credenciales. Se trata de una técnica clásica de typosquatting.
Ofuscación de código mediante la concatenación de cadenas
La versión del paquete malicioso incluía un script de postinstalación (install.js) que se ejecutaba automáticamente tras la instalación.
En el interior, una función llamada logDiskSpace() Parecía inofensivo, pero no comprobaba en absoluto el espacio en disco. En su lugar, utilizaba la concatenación de cadenas para armar un comando que ejecutaba rundll32.exe, y cargó un archivo DLL (node-gyp.dll) incluidos en el paquete.
Secure de forma proactiva el código Secure y el software de código abierto con OPSWAT
MetaDefender Software Chain™ ayuda a las organizaciones a detectar y bloquear las dependencias de código abierto maliciosas antes de que entren en su canalización de CI/CD.
- Análisis de la lista de materiales de seguridad (SBOM): Analiza automáticamente las dependencias y señala las vulnerabilidades conocidas, como CVE-2025-54313, relacionadas con este ataque.
- Detección multiantivirus: detecta malware ofuscado, como node-gyp.dll, mediante más de 30 motores antimalware integrados a través de Metascan™ Multiscanning.
- Integración con repositorios de código fuente: se integra con GitHub, GitLab y JFrog Artifactory para inspeccionar y verificar de forma continua la integridad de los paquetes.


El vector de ataque comenzó con un correo electrónico, y ahí es donde entra en juego MetaDefender Email Security
- Desinfección de archivos:la tecnología Deep CDR™ analiza y desinfecta los archivos adjuntos de los correos electrónicos.
- Extracción de hipervínculos: Todos los enlaces se muestran en texto sin formato, lo que permite detectar dominios falsos como npnjs.com antes de que el usuario haga clic.

Puntos clave
- La seguridad de los mantenedores es la seguridad de la cadena de suministro. Un solo token obtenido mediante phishing permitió a los atacantes secuestrar bibliotecas de uso generalizado.
- Los ecosistemas de código abierto se basan en la confianza, pero un solo caso de ingeniería social que tenga éxito puede repercutir en millones de proyectos derivados.
- Las medidas de seguridad proactivas, como el análisis de dependencias y la depuración del correo electrónico, ya no son opcionales, sino imprescindibles.
¿Qué hacer ahora?
-
Evita instalar las versiones afectadas:
- eslint-config-prettier: 8.10.1, 9.1.1, 10.1.6, 10.1.7
- eslint-plugin-prettier: 4.2.2, 4.2.3
- synckit: 0.11.9
- @pkgr/core: 0.2.8
- napi-postinstall: 0.3.1
- Rotar las claves utilizadas en las compilaciones afectadas
- Activar la autenticación de dos factores (2FA) para todas las cuentas de npm
- Impartir formación sobre concienciación contra el phishing
Los ataques a la cadena de suministro son cada vez más sofisticados y personalizados. Con las soluciones de «cero confianza» OPSWATpara el correo electrónico y los procesos de desarrollo, podrás adelantarte al próximo ataque.
Más información sobre MetaDefender Software Supply Chain y MetaDefender Email Security. Ponte en contacto con uno de nuestros expertos para encontrar soluciones a medida para tu organización.
