Los investigadores de ciberseguridad han señalado una nueva iteración de la campaña GlassWorm que, según dicen, representa una «escalada significativa» en la forma en que se propaga a través del registro Open VSX.
«En lugar de requerir que cada listado malicioso incruste el cargador directamente, el actor de amenazas ahora está abusando de extensionPack y extensionDependencies para convertir extensiones inicialmente independientes en vehículos de entrega transitivos en actualizaciones posteriores, permitiendo que un paquete de apariencia benigna comience a extraer una extensión separada vinculada a GlassWorm solo después de que ya se haya establecido la confianza», dijo Socket en un informe publicado el viernes.
La empresa de seguridad de la cadena de suministro de software dijo que descubrió al menos 72 extensiones maliciosas Open VSX adicionales desde el 31 de enero de 2026, dirigidas a desarrolladores. Estas extensiones imitan utilidades de desarrollo ampliamente utilizadas, incluidos linters y formateadores, ejecutores de código y herramientas para asistentes de codificación impulsados por inteligencia artificial (IA), como Clade Code y Google Antigravity.
Los nombres de algunas de las extensiones se enumeran a continuación. Desde entonces, Open VSX ha tomado medidas para eliminarlos del registro.
- angular-studio.ng-extensiones-angulares
- crotoapp.vscode-xml-extensión
- extensión-de-código-gvotcha.claude
- mswincx.antigravity-cockpit
- tamokill12.foundry-pdf-extensión
- turbobase.sql-turbo-herramienta
- vce-brendan-studio-eich.js-depurador-vscode
GlassWorm es el nombre dado a una campaña de malware en curso que se ha infiltrado repetidamente en Microsoft Visual Studio Marketplace y Open VSX con extensiones maliciosas diseñadas para robar secretos y vaciar carteras de criptomonedas, y abusar de los sistemas infectados como servidores proxy para otras actividades delictivas.
Aunque Koi Security detectó por primera vez la actividad en octubre de 2025, ya en marzo de 2025 se identificaron paquetes npm que utilizaban las mismas tácticas (en particular, el uso de caracteres Unicode invisibles para ocultar código malicioso).
La última versión conserva muchas de las características asociadas con GlassWorm: ejecutar comprobaciones para evitar infectar sistemas con una configuración regional rusa y usar transacciones de Solana como un solucionador de caídas para recuperar el servidor de comando y control (C2) para mejorar la resiliencia.
Pero el nuevo conjunto de extensiones también presenta una mayor ofuscación y rota las billeteras de Solana para evadir la detección, además de abusar de las relaciones de extensión para implementar cargas útiles maliciosas, de manera similar a cómo los paquetes npm dependen de dependencias no autorizadas para pasar desapercibidas. Independientemente de si una extensión está declarada como «extensionPack» o «extensionDependencies» en el archivo «package.json» de la extensión, el editor procede a instalar todas las demás extensiones enumeradas en él.
Al hacerlo, la campaña GlassWorm utiliza una extensión como instalador de otra extensión maliciosa. Esto también abre nuevos escenarios de ataque a la cadena de suministro, ya que un atacante primero carga una extensión VS Code completamente inofensiva en el mercado para eludir la revisión, después de lo cual se actualiza para incluir un paquete vinculado a GlassWorm como una dependencia.
«Como resultado, una extensión que parecía no transitiva y comparativamente benigna en la publicación inicial puede convertirse más tarde en un vehículo de entrega transitivo de GlassWorm sin ningún cambio en su propósito aparente», dijo Socket.
En un aviso simultáneo, Aikido atribuyó al actor de amenazas GlassWorm a una campaña masiva que se está extendiendo a través de repositorios de código abierto, en la que los atacantes inyectan varios repositorios con caracteres Unicode invisibles para codificar una carga útil. Si bien el contenido no es visible cuando se carga en editores de código y terminales, se decodifica en un cargador que es responsable de buscar y ejecutar un script de segunda etapa para robar tokens, credenciales y secretos.
Se estima que no menos de 151 repositorios de GitHub se vieron afectados como parte de la campaña entre el 3 y el 9 de marzo de 2026. Además, la misma técnica Unicode se implementó en dos paquetes npm diferentes, lo que indica un impulso coordinado y multiplataforma.
- @aifabrix/miso-cliente
- @iflow-mcp/watercrawl-watercrawl-mcp
«Las inyecciones maliciosas no llegan en confirmaciones obviamente sospechosas», dijo el investigador de seguridad Ilyas Makari. «Los cambios circundantes son realistas: ajustes en la documentación, mejoras en las versiones, pequeñas refactorizaciones y correcciones de errores que son estilísticamente consistentes con cada proyecto objetivo. Este nivel de adaptación específica del proyecto sugiere fuertemente que los atacantes están usando grandes modelos de lenguaje para generar compromisos de cobertura convincentes».
¿PhantomRaven o experimento de investigación?
El desarrollo se produce cuando Endor Labs dijo que descubrió 88 nuevos paquetes npm maliciosos cargados en tres oleadas entre noviembre de 2025 y febrero de 2026 a través de 50 cuentas desechables. Los paquetes vienen con funcionalidad para robar información confidencial de la máquina comprometida, incluidas variables de entorno, tokens CI/CD y metadatos del sistema.
La actividad se destaca por el uso de dependencias dinámicas remotas (RDD), donde el archivo de metadatos «package.json» especifica una dependencia en una URL HTTP personalizada, lo que permite a los operadores modificar el código malicioso sobre la marcha, así como evitar la inspección.
Si bien los paquetes fueron identificados inicialmente como parte de la campaña PhantomRaven, la compañía de seguridad de aplicaciones señaló en una actualización que fueron producidos por un investigador de seguridad como parte de un experimento legítimo, una afirmación que cuestionó, citando tres señales de alerta. Esto incluye el hecho de que las bibliotecas recopilan mucha más información de la necesaria, no brindan transparencia al usuario y se publican mediante nombres de cuentas y direcciones de correo electrónico rotados deliberadamente.
A partir del 12 de marzo de 2026, el propietario de los paquetes realizó cambios adicionales, intercambiando la carga útil de recolección de datos entregada a través de algunos de los paquetes npm publicados durante el período de tres meses con un simple «¡Hola, mundo!» Mensaje.
«Si bien la eliminación del código que recopilaba información extensa es ciertamente bienvenida, también resalta los riesgos asociados con las dependencias de URL», dijo Endor Labs. «Cuando los paquetes dependen de código alojado fuera del registro npm, los autores conservan el control total sobre la carga útil sin publicar una nueva versión del paquete. Al modificar un solo archivo en el servidor – o simplemente cerrarlo – pueden cambiar o deshabilitar silenciosamente el comportamiento de cada paquete dependiente a la vez».