Rapport CTI technique du 7 septembre 2026
Résumé exécutif
JetBrains a confirmé le 5 septembre 2026 que des acteurs non identifiés ont pénétré l'environnement de son service Cadence en exploitant CVE-2026-63077, une désérialisation de données non fiables dans TeamCity On-Premises notée CVSS 9.8 que l'éditeur avait lui-même publiée et corrigée le 27 juillet 2026. Le serveur api.cadence.jetbrains.com n'avait pas été mis à jour. L'intrusion s'est déroulée entre le 8 et le 24 août 2026, elle a été découverte le 23 août, et le service a depuis été mis hors ligne.
L'intérêt de ce cas dépasse l'ironie du fournisseur victime de sa propre CVE. Cadence est un service de calcul cloud hébergé par JetBrains qui s'intègre à PyCharm pour exécuter des charges de travail sur GPU directement depuis l'IDE. Compromettre un tel service, c'est atteindre en un point les identifiants, le code source synchronisé et les jetons cloud d'un ensemble de développeurs qui, eux, n'ont commis aucune erreur d'exploitation. Les données confirmées comme accessibles incluent une sauvegarde complète du serveur Cadence datant de 2024, des comptes IAM AWS et leurs secrets extraits de cette sauvegarde, des fichiers stockés dans les buckets S3 des comptes AWS de JetBrains, et du code source synchronisé depuis des projets PyCharm. La recommandation de l'éditeur est sans nuance : révoquer et renouveler tout secret ayant transité par Cadence, et traiter l'ensemble des exécutions, entrées comme sorties, comme non fiables.
Chronologie
| Date | Événement |
|---|---|
| 27 juillet 2026 | JetBrains publie CVE-2026-63077 (CVSS 9.8) et les versions correctives TeamCity 2025.11.7 et 2026.1.3 |
| 5 août 2026 | CISA ajoute CVE-2026-63077 au catalogue KEV sur preuve d'exploitation active |
| 8 août 2026 | Début de l'intrusion dans l'environnement Cadence selon JetBrains |
| 23 août 2026 | Détection de la compromission par JetBrains |
| 24 août 2026 | Fin de la fenêtre d'intrusion |
| Août 2026 | Publication du billet d'incident JetBrains et contact direct des utilisateurs concernés |
| 5 septembre 2026 | Mises à jour de l'incident : confirmation de l'accès à la sauvegarde 2024, aux identifiants IAM AWS et aux buckets S3. Reprise par The Hacker News |
| 7 septembre 2026 | Aucun acteur identifié publiquement à la date de rédaction |
Fiche vulnérabilité
CVE-2026-63077 | CVSS 9.8 | JetBrains TeamCity On-Premises
Composant affecté : toutes versions de TeamCity On-Premises antérieures à 2025.11.7 et 2026.1.3.
Classification : CWE-502, désérialisation de données non fiables.
TeamCity expose des points de terminaison destinés à la communication entre le serveur et ses agents de build, en particulier sous la route /app/agents/v1/. Ces endpoints sont conçus pour traiter les requêtes entrantes sans exiger de session utilisateur ni d'authentification administrative classique, puisque les agents de build ne sont pas des utilisateurs. C'est cette exemption qui devient la faille.
Un attaquant non authentifié disposant d'un accès HTTP ou HTTPS au serveur envoie une charge sérialisée à ce point d'entrée. Le serveur la désérialise, et la logique de gadget embarquée dans le graphe d'objets s'exécute pendant la reconstruction. Le résultat est l'exécution de commandes système arbitraires avec les privilèges du processus serveur TeamCity.
Le vecteur mérite d'être compris pour ce qu'il révèle plus largement : le protocole de polling des agents est une surface d'attaque que les modèles de menace CI/CD traitent souvent comme interne, alors que dans la pratique un serveur TeamCity est fréquemment joignable depuis un réseau d'entreprise étendu, voire depuis Internet lorsqu'il doit accepter des agents distants ou des builds déclenchés par webhook.
L'impact spécifique aux plateformes CI/CD est le facteur multiplicateur. Un serveur de build stocke par construction les identifiants de déploiement, les jetons de registre de paquets, les clés cloud et les accès aux dépôts. L'exécution de code sur le serveur donne accès au magasin de secrets et à l'intégrité de la chaîne de build.
Conditions d'exploitation : accès réseau HTTP ou HTTPS au serveur TeamCity. Aucune authentification, aucune interaction utilisateur.
PoC disponible : oui. Rapid7 a publié une analyse technique détaillée, plusieurs analyses de vulnérabilité indépendantes ont suivi, et l'exploitation en masse a débuté suffisamment tôt pour que CISA inscrive la faille au KEV le 5 août 2026, soit neuf jours après la divulgation.
Patch : TeamCity 2025.11.7 et 2026.1.3. Un plugin de correctif de sécurité est également disponible pour les versions 2017.1 et supérieures, ce qui couvre les installations anciennes que les équipes ne peuvent pas monter de version rapidement.
Fiche incident : compromission de JetBrains Cadence
Cible : api.cadence.jetbrains.com, serveur du service Cadence, service de calcul cloud hébergé par JetBrains et intégré à PyCharm via un plugin optionnel pour exécuter des charges de machine learning sur GPU distants.
Fenêtre d'intrusion : 8 au 24 août 2026. Détection le 23 août.
Vecteur : exploitation de CVE-2026-63077 sur une instance TeamCity non corrigée. JetBrains reconnaît que ce serveur aurait dû être traité dans le cadre de sa propre réponse à la vulnérabilité, sans expliquer pourquoi il ne l'a pas été.
Données confirmées comme accessibles ou compromises :
- Données personnelles : noms d'utilisateur, noms réels, adresses e-mail, horodatages de dernière connexion, dernières adresses IP utilisées
- Sauvegarde complète du serveur Cadence datant de 2024, contenant identifiants, configuration, artefacts et journaux
- Plusieurs comptes IAM AWS et les secrets associés utilisés avec Cadence, extraits de cette sauvegarde, dont des comptes IAM appartenant à des employés JetBrains utilisateurs du service
- Fichiers stockés dans des buckets S3 des comptes AWS de JetBrains utilisés par Cadence
- Code source potentiellement synchronisé depuis des projets PyCharm vers le serveur affecté, dans les cas où des utilisateurs ont téléversé ou synchronisé des fichiers de projet pour exécution
Actions éditeur : serveur mis hors ligne, invalidation de tous les jetons d'accès utilisés par le plugin Cadence dans PyCharm, contact direct des utilisateurs concernés. Les mises à jour du 5 septembre indiquent que l'analyse complémentaire n'a pas identifié d'utilisateurs supplémentaires par rapport au groupe déjà contacté.
Attribution : aucune. Ni JetBrains ni aucune source publique ne nomme d'acteur.
Diagramme de la chaîne d'attaque

Reconstruction à partir du billet d'incident JetBrains et de l'analyse Rapid7 de CVE-2026-63077. Sources : JetBrains, Rapid7.
Analyse technique
Étape 1 : identification du serveur TeamCity exposé
Un serveur TeamCity se repère sans difficulté depuis Internet : bannière HTTP caractéristique, route /app/agents/v1/ répondant sans authentification, page de login reconnaissable. Entre la publication du 27 juillet et l'inscription au KEV le 5 août, le délai laissé aux défenseurs a été de neuf jours, ce qui est en dessous du cycle de correctifs de beaucoup d'organisations pour une infrastructure de build considérée comme critique en disponibilité. Le fait que le serveur touché appartienne à l'éditeur de TeamCity lui-même illustre bien le problème : la connaissance de la faille n'est pas le facteur limitant, l'inventaire l'est.
Étape 2 : exécution de code via le protocole de polling des agents
La charge sérialisée envoyée sur l'endpoint d'agent est désérialisée par le serveur. Le graphe d'objets reconstruit contient une chaîne de gadgets dont l'effet de bord, pendant la reconstruction elle-même, est l'exécution de commandes système. L'attaquant obtient les privilèges du processus TeamCity, qui sur la plupart des déploiements dispose d'un accès en lecture au magasin de secrets et en écriture aux configurations de build.
Étape 3 : pivot vers les données du service Cadence
Le serveur compromis hébergeait l'API Cadence. À partir de là, l'accès aux données du service ne demandait plus d'exploitation : la sauvegarde 2024 du serveur, présente sur l'hôte, contenait les identifiants et la configuration. C'est le point qui mérite d'être retenu dans une revue d'architecture : une sauvegarde de deux ans conservée sur le même hôte que le service transforme un RCE ponctuel en accès historique complet.
Étape 4 : extension aux comptes AWS
Les identifiants IAM extraits de la sauvegarde ouvrent un second périmètre. JetBrains confirme l'accès aux fichiers stockés dans des buckets S3 de ses comptes AWS utilisés par Cadence, et précise que des comptes IAM d'employés figuraient parmi les identifiants exposés. La chaîne passe donc du serveur de build à l'infrastructure cloud du fournisseur, avec des identifiants valides et non des exploits.
Étape 5 : exposition en aval, côté clients
Le dernier maillon est le plus difficile à mesurer pour JetBrains comme pour ses clients. Les projets PyCharm synchronisés vers Cadence pour exécution ont pu emporter avec eux du code, mais aussi des fichiers de configuration et des secrets embarqués. Chaque exécution Cadence, ses entrées et ses sorties, doit être considérée comme potentiellement altérée. Autrement dit, un développeur dont le poste n'a jamais été touché peut avoir vu ses clés cloud personnelles exposées parce qu'il les avait rendues disponibles à une exécution distante.
JetBrains évalue les conséquences probables de l'exposition des données personnelles comme un risque accru de phishing ciblé, d'ingénierie sociale et d'usurpation d'identité utilisant les noms et adresses concernés. Pour une base d'utilisateurs composée de développeurs disposant d'accès aux dépôts et aux environnements de production, ce risque n'est pas secondaire.
Indicateurs de compromission
| Type | Valeur |
|---|---|
| IP source (activité d'exploitation observée) | 150.109.230.104 |
| IP source | 43.153.227.206 |
| IP source | 62.210.127.48 |
| IP source | 210.247.242.190 |
| IP source | 15.235.225.205 |
| IP source | 152.233.30.18 |
| Fenêtre temporelle | Activité à partir du 8 août 2026, en particulier authentification avec des identifiants stockés dans Cadence ou accessibles via ce service |
| Comportement | Authentification ou activité depuis des adresses IP ou des localisations inattendues |
| Comportement | Clones ou téléchargements de dépôts inattendus, commits non reconnus |
| Comportement | Modification de secrets de dépôt, de webhooks, de collaborateurs ou de permissions |
| Comportement | Jetons d'accès personnels, jetons d'API ou clés SSH nouveaux ou modifiés dans des services externes |
| Comportement | Comptes de service nouvellement créés dans des services externes |
| Comportement | Changements inattendus de rôles, politiques ou permissions IAM cloud |
| Comportement | Accès inattendu à du stockage cloud, buckets et objets S3 inclus, sur AWS et Google Cloud |
| Comportement | Publication ou modification inattendue de paquets ou de releases |
| Hôte | api.cadence.jetbrains.com (désormais hors ligne) |
MITRE ATT&CK
JetBrains ne publie pas de cartographie ATT&CK. Le tableau ci-dessous est une lecture technique de la chaîne décrite dans le billet d'incident et dans l'analyse de la CVE.
| Tactique | Technique | ID | Justification |
|---|---|---|---|
| Reconnaissance | Active Scanning: Vulnerability Scanning | T1595.002 | Recherche d'instances TeamCity non corrigées après divulgation publique |
| Initial Access | Exploit Public-Facing Application | T1190 | CVE-2026-63077 sur un serveur TeamCity joignable |
| Execution | Command and Scripting Interpreter | T1059 | Exécution de commandes système via la chaîne de gadgets de désérialisation |
| Credential Access | Unsecured Credentials: Credentials In Files | T1552.001 | Identifiants extraits de la sauvegarde 2024 du serveur Cadence |
| Credential Access | Unsecured Credentials: Cloud Instance Metadata API | T1552.005 | Comptes IAM AWS et secrets associés récupérés dans l'environnement du service |
| Collection | Data from Information Repositories | T1213 | Code source synchronisé depuis PyCharm, artefacts et journaux du service |
| Collection | Data from Cloud Storage | T1530 | Fichiers dans les buckets S3 des comptes AWS JetBrains |
| Lateral Movement | Use Alternate Authentication Material: Application Access Token | T1550.001 | Jetons d'accès du plugin Cadence, invalidés depuis par l'éditeur |
| Impact | Trusted Relationship (exposition en aval) | T1199 | La compromission du fournisseur expose les secrets et le code de ses clients sans action de leur part |
Remédiation : checklist opérationnelle
- Recenser toutes les instances TeamCity On-Premises de l'organisation, y compris celles montées pour un projet ponctuel et jamais décommissionnées. C'est l'inventaire, pas la connaissance de la CVE, qui a fait défaut chez l'éditeur lui-même.
- Mettre à jour vers TeamCity 2025.11.7 ou 2026.1.3. Pour les installations anciennes qui ne peuvent pas monter de version immédiatement, appliquer le plugin de correctif de sécurité disponible pour les versions 2017.1 et supérieures.
- Retirer de l'exposition Internet tout serveur TeamCity qui n'a pas besoin d'accepter des agents distants. Si l'exposition est nécessaire, filtrer la route
/app/agents/v1/sur les seules adresses d'agents connues. - Pour tout utilisateur de Cadence : révoquer et renouveler l'intégralité des identifiants et secrets ayant pu servir à des exécutions Cadence, sans exception et sans attendre une confirmation individuelle d'exposition.
- Auditer les comptes AWS associés, en priorité les utilisateurs IAM, leurs clés d'accès, les politiques attachées et les journaux CloudTrail sur la période du 8 août au 24 août 2026 et au-delà.
- Inspecter les buckets S3 accessibles avec les identifiants révoqués : accès en lecture, listing d'objets, téléchargements sortants.
- Auditer les dépôts de code sur la même fenêtre : commits inattendus, clones, modifications de secrets, de webhooks, de collaborateurs et de permissions.
- Rechercher dans les journaux d'authentification les six adresses IP publiées par JetBrains, ainsi que toute authentification depuis une géolocalisation inhabituelle utilisant un identifiant ayant transité par Cadence.
- Traiter comme non fiables toutes les exécutions Cadence, leurs entrées et leurs sorties. Un artefact produit par une exécution sur un serveur compromis ne doit pas être promu vers un environnement de production sans reconstruction depuis la source.
- Vérifier les registres de paquets et de conteneurs pour toute publication ou modification de release non planifiée.
- Prévenir les équipes du risque de phishing ciblé exploitant les noms et adresses e-mail exposés. Les tentatives d'ingénierie sociale visant des développeurs disposant d'accès de production sont la suite logique de ce type de fuite.
- Revoir la politique de conservation des sauvegardes sur les hôtes de service. Une sauvegarde complète de 2024 restée sur le serveur de production a transformé un accès de seize jours en exposition historique.
Sources
- JetBrains : Cadence security incident, August 2026
- The Hacker News : Attackers Breached JetBrains Cadence via Unpatched TeamCity, Extracting AWS Credentials
- JetBrains : Critical Security Issue Affecting TeamCity On-Premises (CVE-2026-63077)
- Rapid7 : CVE-2026-63077, critical unauthenticated remote code execution in JetBrains TeamCity
- The Hacker News : CISA Flags TeamCity CVE-2026-63077 RCE Flaw Under Active Exploitation in the Wild
- SecurityWeek : Hackers Start Exploiting Recent JetBrains TeamCity Vulnerability
- CISA : Known Exploited Vulnerabilities Catalog
- CWE-502 : Deserialization of Untrusted Data