La confianza en los ecosistemas de TI se ha convertido en una catástrofe para toda la industria.
Investigadores de Zscaler ThreatLabz detectaron en el repositorio oficial PyPI la librería termncolor, que distribuía código malicioso a través de la dependencia colorinal. Ambas bibliotecas ya han sido eliminadas, pero antes de eso se descargaron más de 800 veces.
La particularidad del ataque consistió en una infección por etapas: la instalación de termncolor provocaba la descarga de colorinal, que ejecutaba un archivo DLL para descifrar y lanzar la siguiente fase. En esa etapa se usaba el binario vcpktsvr.exe junto con libcef.dll cargado mediante DLL sideloading. Este último recopilaba información del sistema y se comunicaba con el servidor de control a través de la plataforma de chat Zulip, lo que permitía camuflar el tráfico.
Para persistir en el sistema, la biblioteca añadía una clave en el inicio de Windows, y en Linux instalaba la librería terminate.so con funcionalidad similar. El análisis de la actividad en Zulip mostró la presencia de tres cuentas activas y casi 91.000 mensajes, lo que indica un uso prolongado del canal y actividad del autor desde principios de julio de 2025.
Al mismo tiempo la compañía SlowMist informó sobre otra campaña dirigida a desarrolladores. Los atacantes se hacían pasar por empleadores y pedían a los candidatos clonar un repositorio de GitHub con un paquete npm infectado. Ese código permitía extraer datos de iCloud Keychain, el contenido de navegadores y carteras de criptomonedas, y enviarlos a un servidor externo.
Además, los módulos maliciosos podían descargar y ejecutar scripts en Python, recopilar información del sistema, buscar archivos confidenciales, robar credenciales, registrar pulsaciones de teclas, tomar capturas de pantalla y controlar el portapapeles. Entre los paquetes detectados están redux-ace y rtk-logger, que en conjunto se descargaron más de 550 veces.
En los últimos meses también se han registrado otros paquetes npm maliciosos dirigidos a especialistas en seguridad. Se utilizaron para robo de datos y minería oculta de criptomonedas, y los atacantes aprovecharon dependencias y servicios legítimos como Dropbox para exfiltrar la información robada. Según Datadog, esos paquetes se distribuían como proof-of-concept de vulnerabilidades o como supuestas «mejoras del rendimiento del kernel». Detrás de esa actividad está un grupo rastreado con el identificador MUT-1244.
Una amenaza adicional la constituye la actualización automática de dependencias. ReversingLabs demostró que si se compromete un proyecto popular, las versiones maliciosas pueden propagarse masivamente a otros proyectos. Un ejemplo fue el caso de eslint-config-prettier, cuando los atacantes consiguieron mediante phishing acceder y subir versiones suplantadas a npm sin cambios en el repositorio de GitHub.
Más de 14.000 paquetes señalaron este módulo como dependencia principal en lugar de devDependency, lo que provocó la propagación automática de las versiones infectadas a través de Dependabot y GitHub Actions. Los investigadores destacaron que estas herramientas, creadas originalmente para reducir riesgos, pueden convertirse en un factor que acelere la infección en caso de un ataque a la cadena de suministro.
La historia de las bibliotecas maliciosas en PyPI y npm demuestra que no solo los usuarios finales son vulnerables, sino también las propias herramientas de desarrollo: cuanto más profunda es la automatización y la confianza en los ecosistemas, más peligroso resulta un eslabón suplantado en la cadena de suministro.