CVE-2024-23897 : Jenkins 2.441 - Analyse et PoC
Une faille critique identifiée comme CVE-2024-23897 a récemment été révélée dans Jenkins, un serveur d’automatisation open source essentiel pour la CI/CD (Intégration Continue et Livraison Continue). Cette vulnérabilité permet la lecture arbitraire de fichiers sur le système de fichiers du contrôleur Jenkins et a été exploitée activement dans le monde entier.
Systèmes et versions impactés
La vulnérabilité CVE-2024-23897 affecte les versions suivantes de Jenkins :
- Jenkins 2.441 et versions antérieures
- Jenkins LTS 2.426.2 et versions antérieures
Analyse Technique
CVE-2024-23897 exploite une faiblesse dans l’interface de ligne de commande (CLI) intégrée de Jenkins, qui utilise la bibliothèque args4j pour analyser les arguments et options des commandes. Les attaquants non authentifiés ayant la permission Overall/Read peuvent lire les premières lignes des fichiers sur le contrôleur Jenkins. Les utilisateurs authentifiés peuvent exploiter la vulnérabilité pour lire intégralement les fichiers binaires, y compris les clés cryptographiques utilisées pour diverses fonctionnalités Jenkins, ce qui peut entraîner une exécution de code à distance et d’autres actions non autorisées.
Proof of Concept (PoC)
Lab Setup
Installation de Java
sudo apt install openjdk-11-jdk
Pour confirmer l’installation de Java:
java -version
openjdk version "11.0.22" 2024-01-16
OpenJDK Runtime Environment (build 11.0.22+7-post-Ubuntu-0ubuntu222.04.1)
OpenJDK 64-Bit Server VM (build 11.0.22+7-post-Ubuntu-0ubuntu222.04.1, mixed mode, sharing)
Installation de Jenkins 2.441
wget "http://pkg.jenkins-ci.org/debian/binary/jenkins_2.441_all.deb"
sudo dpkg -i jenkins_2.441_all.deb
sudo apt install net-tools
Vérification du service Jenkins
sudo systemctl status jenkins.service
Impact et Mitigation
Impact
L’exploitation réussie de cette vulnérabilité peut entraîner la divulgation de données sensibles, comme les artefacts de construction, les mots de passe, les secrets de projets, les clés SSH, le code source, etc. Cela pose un risque important pour la sécurité des organisations utilisant Jenkins.
Stratégies de Mitigation
Jenkins a publié des correctifs pour cette vulnérabilité dans les versions 2.442 et LTS 2.426.3. Il est impératif que les utilisateurs mettent à jour leurs serveurs immédiatement. Comme mesure de contournement temporaire, il est possible de désactiver l’accès à l’interface CLI intégrée de Jenkins, ce qui prévient l’exploitation.
Références
- Jenkins Security Advisory 2024-01-24
- Packet Storm’s PoC a servi de base importante pour l’élaboration de ce PoC.