Quatre vulnérabilités impactent l’outil de CI/CD TeamCity de JetBrains, permettant de réaliser un bypass d’authentification. Parmi elles, deux vulnérabilités critiques, aux côtés d'une haute et d'une moyenne. Identifiées par les références CVE-2024-23917, CVE-2024-27198, CVE-2024-27199 et CVE-2024-24942, elles obtiennent respectivement un score CVSS v3.1 de 9,8, 9,8, 7,3 et 5,3. L’équipe Stormshield Customer Security Lab détaille les protections fournies par Stormshield.
Tous les serveurs JetBrains TeamCity en versions inférieures à 2023.11.4 sont vulnérables aux CVE-2024-27198 et CVE-2024-27199. Tous les serveurs en versions inférieures à 2023.11.3 sont vulnérables aux CVE-2024-23917 et CVE-2024-24942. L’exploitation s’effectue via l’interface web de l’applicatif.
Les détails techniques des vulnérabilités JetBrains
CVE-2024-23917
Cette première vulnérabilité CVE-2024-23917 permet de contourner l’authentification du serveur, sans limitation. Elle réside dans une erreur de conception de la fonction déterminant si la requête doit être traitée par le système d’authentification. Si la requête finit par « .jsp »
ou « .jspf »
et contient le paramètre GET « jsp_precompile »
non nul, l’authentification ne sera pas vérifiée. Il est possible d’abuser de ce comportement, en injectant après n’importe quel chemin « ;nomdefichierbidon.jsp?jsp_precompile=1 »
. Par exemple : « /app/rest/users/id:1/tokens/name;randomname.jsp?jsp_precompile=1 »
CVE-2024-27198
Cette deuxième vulnérabilité CVE-2024-27198 permet également de contourner l’authentification du serveur. Elle réside également dans l’usage d’un « ; »
pour abuser un filtre, qui teste si le contenu du paramètre GET « jsp »
finit bien par « .jsp »
. En utilisant un chemin qui retourne une erreur 404 (par exemple « /abc »
) et en y ajoutant le paramètre GET « jsp »
contenant le chemin que l’on souhaite obtenir, suivi de « ;.jsp »
, on peut alors accéder à tout chemin ne contenant pas « admin/ »
sans authentification. Par exemple : « /abc?jsp=/app/rest/users/id:1/tokens/nameToken;.jsp »
CVE-2024-27199
Cette troisième vulnérabilité CVE-2024-27199 permet de contourner l’authentification du serveur via une traversée de chemin. Dans certains chemins non authentifiés, il est possible d’injecter un « ../ »
et certains chemins accédés seront alors sans authentification. Par exemple : « /res/../admin/diagnostic.jsp »
CVE-2024-24942
Cette quatrième vulnérabilité CVE-2024-24942 est également une traversée de chemin résidant dans « /app/rest/swagger* »
. Le chemin suivant ce « swagger* »
est passé tel quel à une fonction lisant le contenu du fichier indiqué. Il est ainsi possible d’effectuer une traversée de dossier via « ../ »
et donc de lire certains fichiers. Cette vulnérabilité est limitée à certains types de fichiers, ce qui explique son faible score CVSS. Par exemple : « /app/rest/swaggerui;/../../web.xml »
La modélisation de l'attaque avec MITRE ATT&CK
MITRE ATT&CK
- T1210 (Exploitation of Remote Services)
CWE
- CVE-2024-23917 : CWE-288 – Authentication Bypass Using an Alternate Path or Channel
- CVE-2024-27198 : CWE-288 – Authentication Bypass Using an Alternate Path or Channel
- CVE-2024-27199 : CWE-22 – Improper Limitation of a Pathname to a Restricted Directory
- CVE-2024-24943 : CWE-23 – Relative Path Traversal
Les moyens de protections avec Stormshield Network Security face aux vulnérabilités JetBrains
Protection face à la CVE-2024-23917
- Signature http:url:decoded.427 - Exploitation d'un contournement de l'authentification dans JetBrains TeamCity (CVE-2024-23917)
Indice de confiance de la protection proposée par Stormshield |
Indice de confiance de l’absence de faux positif |
Protection face à la CVE-2024-27198
- Signature http:url:decoded.425 - Exploitation d'un contournement de l'authentification dans JetBrains TeamCity (CVE-2024-27198)
Indice de confiance de la protection proposée par Stormshield |
Indice de confiance de l’absence de faux positif |
Protection face aux CVE-2024-27199 & CVE-2024-24942
- Signature http:80 – Chemin avec référence supérieure
Indice de confiance de la protection proposée par Stormshield |
Indice de confiance de l’absence de faux positif |
Recommandations face aux vulnérabilités JetBrains
Il est recommandé de mettre à jour les serveurs JetBrains TeamCity vers la dernière version en date. JetBrains fournit la liste des vulnérabilités corrigées dans ses versions ici : jetbrains.com/privacy-security/issues-fixed/?product=TeamCity