Un troyano, millones de instalaciones: paquetes populares para desarrolladores convertidos en armas del mal

Un troyano, millones de instalaciones: paquetes populares para desarrolladores convertidos en armas del mal

Gluestack, NPM, RAT: todo converge en una sola cadena que te lleva a ti.

image

Se ha registrado un ataque masivo a la cadena de suministro en la plataforma NPM: los atacantes comprometieron 17 paquetes populares del conjunto Gluestack @react-native-aria, insertando código malicioso en ellos. Estos paquetes se utilizan en el desarrollo móvil y acumulan más de un millón de descargas por semana, lo que convierte este ataque en uno de los más significativos de 2025.

La inserción del código malicioso comenzó el 6 de junio, cuando se publicó una nueva versión del paquete @react-native-aria/focus. A partir de ese momento, los atacantes lanzaron actualizaciones maliciosas para otros 16 componentes de la biblioteca.

La comprometida fue detectada por especialistas de Aikido Security, quienes encontraron un fragmento disfrazado de código JavaScript malicioso agregado al final del archivo lib/index.js. El código estaba ofuscado y complementado con espacios, lo que dificultaba su detección en la interfaz web de NPM.

El análisis reveló que la inserción maliciosa funciona como un troyano de acceso remoto (RAT). El programa establece una conexión con el servidor de comando y control de los atacantes y puede ejecutar órdenes remotas. Entre los comandos disponibles están cambiar el directorio actual, descargar archivos o carpetas específicas, detener la transferencia, así como ejecutar cualquier comando arbitrario de shell mediante child_process.exec().

Una característica particular del troyano es que intercepta la variable de entorno PATH en Windows, sustituyendo la ruta de Python por una ficticia (%LOCALAPPDATA%\Programs\Python\Python3127). Esto permite ejecutar binarios maliciosos en lugar de utilidades legítimas de Python o pip sin conocimiento del usuario.

Al momento de la publicación, el ataque afectó los siguientes paquetes:

@react-native-aria/button, checkbox, combobox, disclosure, focus, interactions, listbox, menu, overlays, radio, switch, toggle, utils, separator, slider, tabs, así como @gluestack-ui/utils. El volumen total de instalaciones de estos paquetes en el momento del ataque era de aproximadamente 1,02 millones de descargas por semana.

Según Aikido, la implementación maliciosa es muy similar a un ataque anterior realizado por los mismos atacantes hace un mes. En esa ocasión también se utilizó funcionalidad RAT con comandos de control similares.

A pesar de numerosos intentos de contactar al equipo de Gluestack a través de GitHub, no se recibió respuesta. Los representantes de NPM también fueron notificados, pero su verificación y respuesta, según Aikido, suelen tardar varios días.

Además, los especialistas vinculan el ataque actual con la reciente compromisión de otros cuatro paquetes: biatec-avm-gas-station, cputil-node, lfwfinance/sdk y lfwfinance/sdk-dev. Esto confirma que la operación está siendo llevada a cabo por el mismo grupo.

El 8 de junio se supo del compromiso de otro paquete más, @react-native-aria/tabs, lo que amplió aún más el alcance del ataque y superó el millón de descargas. Posteriormente, Gluestack publicó una actualización: el token comprometido fue revocado, las versiones infectadas marcadas como obsoletas y el puntero «latest» redirigido a una versión anterior segura. No fue posible eliminar por completo las versiones maliciosas debido a dependencias de otros paquetes.

El incidente subraya cuán vulnerables son las ecosistemas de código abierto, especialmente cuando las actualizaciones de bibliotecas se realizan automáticamente. Incluso un cambio menor en un paquete puede convertirse en una puerta de entrada para una campaña de espionaje o sabotaje a gran escala, que afecte a miles de proyectos en todo el mundo.

¿Estás cansado de que Internet sepa todo sobre ti?

¡Únete a nosotros y hazte invisible!