Une vulnérabilité critique impactant Jenkins, identifiée par la référence CVE-2024-23897, vient de voir le jour. Elle obtient un score CVSS v3.1 de 9.8. Il convient de porter une attention particulière à cette vulnérabilité Jenkins, car de nombreuses preuves de concept sont disponibles publiquement, offrant un fort potentiel d’exploitation par des acteurs malveillants. L’équipe Stormshield Customer Security Lab détaille les protections fournies par Stormshield.
Le contexte de la vulnérabilité Jenkins
La vulnérabilité CVE-2024-23897 impacte les versions 2.441 et inférieures de la branche principale de Jenkins, ainsi que les versions 2.426.2 et inférieures de la branche LTS (Long Term Support). Cette faille permet de lire des fichiers de manière arbitraire. Cependant, deux cas existent :
- Soit l’attaquant n’est pas authentifié, auquel cas il ne peut lire que les premières lignes du fichier ;
- Soit l’attaquant dispose d’un compte avec des permissions de lecture seule, auquel cas il peut lire le fichier en entier.
Cette vulnérabilité Jenkins peut ainsi permettre à un attaquant d’accéder à des fichiers sensibles tels que des mots de passe, des clés SSH, ou encore, dans le cas de Jenkins, du code source. Avec certains secrets en main, l’attaquant peut potentiellement prendre le contrôle du serveur.
Les détails techniques de la vulnérabilité Jenkins
La cause de cette vulnérabilité CVE-2024-23897 vient du système de ligne de commande intégré à Jenkins. En effet, il est possible, grâce à ce moyen, de fournir à une commande le chemin d’un fichier et cette dernière peut alors utiliser les lignes de ce fichier en tant qu’arguments.
Pour les connaisseurs, cela se fait avec le caractère ‘@’. L’attaquant peut alors utiliser cette technique sur une commande dont il sait qu’elle retourne, en cas d’erreur, l’argument lu et ainsi divulguer le contenu du fichier.
Les moyens de protections Stormshield face à la vulnérabilité Jenkins
Protection avec Stormshield Network Security
Les firewalls Stormshield Network Security (SNS) détectent et bloquent par défaut l’exploitation de la CVE-2024-23897, via leur analyse protocolaire :
- http:client,99 : Exploitation of a arbitrary file read vulnerability in Jenkins (CVE-2024-23897)
Afin que ces protections soient efficaces, il est nécessaire que le flux soit déchiffré.
Indice de confiance de la protection proposée par Stormshield |
Indice de confiance de l’absence de faux positif |
Recommandations face à la vulnérabilité Jenkins
À la rédaction de cet article, un patch de Jenkins est d’ores et déjà disponible. Il est ainsi fortement recommandé de mettre à jour le produit en version 2.442 pour la branche principale et en version 2.426.3 pour la branche LTS.
Si ce n’est pas possible d’appliquer la mise à jour de suite, le contournement consiste à désactiver la ligne de commande pour empêcher cette attaque via la vulnérabilité CVE-2024-23897.