En enero del 2024, un paquete malicioso llamado «oscompatible» fue subido al registro de npm, y según la firma Phylum de seguridad de la cadena de suministro de software, atrajo un total de 380 descargas antes de ser eliminado. El paquete incluía «unos cuantos binarios extraños», como un archivo ejecutable único, una biblioteca de vínculo dinámico (DLL), un archivo DAT cifrado, y un archivo JavaScript llamado «index.js».
El ataque tenía como objetivo máquinas Windows comprometidas, y el archivo JavaScript ejecutaba un script por lotes llamado «autorun.bat», pero solo después de realizar una verificación de compatibilidad para determinar si la máquina objetivo corre Microsoft Windows. En caso contrario, el mensaje de error indicaba que el script se estaba ejecutando en Linux o en un sistema operativo no reconocido, y los instaba a ejecutarlo en «Windows Server OS.»
Cuando el script por lotes verificaba que no tenía permisos de administrador, ejecutaba el componente legítimo de Microsoft Edge llamado «cookie_exporter.exe» a través de un comando PowerShell. Luego, la biblioteca DLL «msedge.dll» se ejecutaba aprovechando una técnica llamada secuestro de orden de búsqueda de DLL, y se establecía una conexión con el dominio controlado por el actor, «kdark1[.]com» para recuperar un archivo ZIP.
El archivo ZIP venía con el software de escritorio remoto AnyDesk, así como con un troyano de acceso remoto llamado «verify.dll» que podía obtener instrucciones de un servidor de control y comando (C2) a través de WebSockets y recopilar información confidencial del host. También «instalaba extensiones de Chrome en las Preferencias seguras, configuraba AnyDesk, ocultaba la pantalla y deshabilitaba el apagado de Windows, capturaba eventos de teclado y mouse,» según Phylum.
La divulgación llega cuando la firma de seguridad en la nube Aqua reveló que el 21,2% de los paquetes de npm más descargados en los 50,000 mejores están obsoletos, exponiendo a los usuarios a riesgos de seguridad. En otras palabras, se descargan paquetes obsoletos un estimado de 2,1 billones de veces por semana. Esto incluye repositorios archivados y eliminados de GitHub asociados con los paquetes, así como aquellos que se mantienen sin un repositorio visible, historial de confirmaciones y seguimiento de problemas.