Sitio web falso de npm utilizado para distribuir malware mediante tokens robados

Una campaña de phishing dirigida a desarrolladores de JavaScript ha comprometido varios paquetes npm populares, incluyendo eslint-config-prettier
. La brecha comenzó cuando un atacante engañó a un mantenedor mediante una página de inicio de sesión falsa alojada en un dominio similar, npnjs.com
.
Una vez que el atacante obtuvo el token npm del mantenedor, envió versiones maliciosas de paquetes clave directamente a través del registro, omitiendo por completo los repositorios de GitHub .
Según Socket, una plataforma de seguridad orientada a desarrolladores, que detectó la estafa por primera vez, se encontró que cuatro versiones de eslint-config-prettier
(8.10.1, 9.1.1, 10.1.6, 10.1.7) contenían un script que se ejecuta durante la instalación y que ataca a equipos Windows. El script intenta ejecutar un archivo node-gyp.dll
mediante rundll32
, lo que podría permitir al atacante ejecutar código arbitrario en los sistemas afectados. Los investigadores de seguridad asignaron al problema una puntuación CVSS de 7,5 y confirmaron que se está rastreando un nuevo CVE ( CVE-2025-54313 ).
La publicación del blog de Socket compartida con Hackread.com reveló que el ataque pasó desapercibido por un tiempo ya que no había confirmaciones ni solicitudes de extracción en el repositorio de GitHub vinculado a las nuevas versiones.
En cambio, el atacante utilizó sus credenciales de npm para publicar directamente, evitando ser detectado hasta que los usuarios empezaron a notar actividad sospechosa. Otros paquetes afectados descubiertos por los investigadores incluyen los siguientes:
synckit
: 0.11.9-
@pkgr/core
: 0.2.8 -
napi-postinstall
: 0.3.1 -
eslint-plugin-prettier
: 4.2.2 y 4.2.3
Estos paquetes se usan ampliamente en proyectos front-end y Node.js. Dado que muchos desarrolladores dependen de herramientas automatizadas como Dependabot o Renovate, es posible que se hayan instalado versiones comprometidas en los proyectos sin que nadie se diera cuenta. Una vez instalada, la carga útil podría proporcionar acceso remoto a equipos Windows que ejecuten compilaciones afectadas.
La buena noticia es que el encargado del mantenimiento cuyo token se vio comprometido actuó con rapidez tras enterarse de la brecha. Las versiones maliciosas se descontinuaron y eliminaron, se rotaron las credenciales y se contrató el soporte de npm para ayudar con la limpieza.
Socket ha estado monitoreando la situación y continúa buscando otras actividades sospechosas en el registro npm. Sus herramientas detectan cualquier nueva versión con scripts de instalación o cargas binarias inesperadas, lo que podría ayudar a los desarrolladores a detectar problemas con antelación, antes de que el código malicioso se propague.
Nigel Douglas , director de Relaciones con Desarrolladores de Cloudsmith, comentó sobre las implicaciones más amplias. Señaló que este es otro ejemplo de cómo las cadenas de dependencias pueden convertirse en vectores de ataque. «Las canalizaciones de CI/CD incorporan cientos de dependencias transitivas por defecto, cada una con sus propios mantenedores, ciclos de actualización e historial de exposición», afirmó. «Sin procesos seguros de recuperación de dependencias, basta con una sola brecha de seguridad para causar el caos en la producción».
Douglas también enfatizó que no es razonable esperar que los desarrolladores detecten todas las vulnerabilidades por sí solos. "Si un solo token de mantenimiento robado puede introducir código malicioso en una de las herramientas de linting más utilizadas en npm, eso debería indicarnos algo. No se puede solucionar esto centrándose únicamente en paquetes individuales", añadió.
Pidió prácticas de mantenimiento más sólidas, como tokens con alcance y 2FA, junto con salvaguardas a nivel de registro y sistemas de gestión de artefactos seguros que respalden cosas como la inmutabilidad de versiones y la verificación de fuentes confiables.
HackRead