Librería de node.js es comprometida y permitía el robo de contraseñas

Estándar

Según ha sido reportado por The Register, el día de ayer, un hacker ha obtenido acceso a la cuenta npm de un desarrollador e inyectado código malicioso en una popular biblioteca de node.js, código que fue diseñado para robar las credenciales npm de los usuarios que utilizan el paquete manipulado dentro de sus proyectos de desarrollo.

El paquete de node.js que se vio comprometido se llama eslint-scope, uno de los submódulos del popular paquete ESLint, que es un kit de herramientas de análisis de código JavaScript.

El ataque fue llevado a cabo la noche del 11 al 12 de julio, según los resultados de una investigación preliminar publicada en GitHub el día de ayer.

Uno de nuestros mantenedores observó que se generó un nuevo token npm durante la noche (dicho mantenedor estaba dormido)“, dijo Kevin Partington, miembro del proyecto ESLint.

Partington cree que el ciberdelincuente usó el token npm recién generado para autenticar e insertar una nueva versión de la biblioteca eslint-scope en el repositorio npm de paquetes JavaScript.

La versión maliciosa fue eslint-scope 3.7.2, que los responsables del repositorio npm han desconectado para evitar la propagación de este modulo afectado con el software malicioso.

El código publicado parece robar credenciales npm, por lo que recomendamos que cualquiera que haya instalado esta versión cambie su contraseña npm y (si es posible) revoque sus tokens npm y genere nuevos“, es lo que recomienda Partington a los desarrolladores que usaron esling-scope .

El incidente es de gran importancia porque las credenciales de npm robadas se pueden usar de manera similar a lo que sucedió ahora. El hacker puede usar cualquiera de las credenciales de npm robadas para envenenar otras bibliotecas de JavaScript que están disponibles a través de npm, que es el administrador de paquetes de node.js.

Este es el tercer incidente en el último año cuando un hacker ha insertado código malicioso en un paquete npm.

El primer incidente de este tipo ocurrió en agosto del 2017 cuando el equipo de npm eliminó 38 paquetes JavaScript npm que fueron capturados robando variables de entorno de proyectos infectados.

En mayo de este año, alguien intentó esconder una puerta trasera en otro popular paquete npm llamado getcookies.

Incidentes similares con malware que terminan en repositorios de paquetes han sucedido con PyPI Python [1, 2], Docker Hub, Arch Linux AUR y Ubuntu Store.