CVE-2024-23897 : Jenkins 2.441 - Analyse et PoC

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
Si vous recevez une erreur concernant le package net-tools, vous pouvez l’installer avec la commande suivante: sudo apt install net-tools

Vérification du service Jenkins

sudo systemctl status jenkins.service
Vérification du status de Jenkins
Vérification du status de Jenkins
Configuration de Jenkins
Configuration de Jenkins
Démonstration du POC
Démonstration du POC

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