Preuve de concept CVE-2024-28157
Présentation
Le plugin Jenkins GitBucket version 0.8 et antérieures ne nettoie pas les URL Gitbucket dans les vues de construction, ce qui entraîne une vulnérabilité de cross-site scripting (XSS) stockée, exploitable par des attaquants capables de configurer des jobs.
Étapes d'exploitation
Configuration de Jenkins (avec docker) :
- Utilisez docker pour exécuter l'image Jenkins.
docker run jenkins/jenkins:lts
- Installez le plugin Gitbucket depuis l'interface graphique (la version la plus récente de ce plugin est 0.8, qui est vulnérable, donc l'exploit fonctionnera).
Exploit :
- Allez dans Nouvel élément et créez un nouveau job. Sélectionnez le type d'élément (j'ai choisi un projet freestyle dans la démo).
- Dans les configurations, fournissez une simple charge utile XSS
javascript:alert('hello') dans la section URL Gitbucket.
- Enregistrez les configurations et allez dans l'option Gitbucket. Observez l'exécution du XSS.
Vidéo d'exploitation
jenkinsxxsexploit.webm