
In issabel-pbx v4.0.0-6 besteht eine Cross-Site-Request-Forgery-Schwachstelle (CSRF) innerhalb der Verwaltung virtueller Faxe.
CVE-ID: CVE-2023-37598
Schwachstellentyp: Site-übergreifende Anfragefälschung (CSRF)
Betroffenes Produkt: issabel-pbx v4.0.0-6
Schweregrad: Mittel
Entdeckt von: Sahil Ojha
Offenlegungsdatum: 10.07.2023
Hersteller-Webseite: https://www.issabel.org/
Software-Repository: https://github.com/IssabelFoundation/issabelPBX
Getestet auf: Windows
In issabel-pbx v4.0.0-6 besteht eine Site-übergreifende Anfragefälschung (CSRF)-Schwachstelle in der Verwaltungsfunktion für virtuelle Faxe. Die Anwendung implementiert keinen CSRF-Schutz (z. B. Anti-CSRF-Token oder SameSite-Cookie-Attribute) für die Löschaktion von virtuellen Faxeinträgen.
Dies ermöglicht es einem entfernten, nicht authentifizierten Angreifer, eine schädliche HTML-Seite zu erstellen, die – wenn sie von einem authentifizierten Administrator oder Benutzer besucht wird – im Namen des Opfers eine gefälschte HTTP-Anfrage an die Anwendung sendet. Die gefälschte Anfrage bewirkt die Löschung von virtuellen Faxdatensätzen ohne Wissen oder Zustimmung des Opfers, was zu Datenverlust und Unterbrechung der Faxdienste führt.
Site-übergreifende Anfragefälschung (CSRF) ist ein Angriff, bei dem der Browser eines Opfers dazu gebracht wird, eine authentifizierte Anfrage an eine Webanwendung zu senden, ohne dass der Benutzer dies beabsichtigt. Da der Browser automatisch Sitzungscookies mit jeder Anfrage mitsendet, kann der Server eine legitime Anfrage nicht von einer gefälschten unterscheiden, wenn kein CSRF-Token vorhanden ist.
| Parameter | Wert |
|---|
Die folgende HTML-Datei sendet, wenn sie von einem authentifizierten issabel-pbx-Benutzer geöffnet wird, automatisch eine gefälschte POST-Anfrage, die das virtuelle Fax mit id_fax=1 löscht.
Datei: CSRF exploit.html
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://{Issabel IP}/index.php?menu=faxnew&action=view&id=1" method="POST">
<input type="hidden" name="delete" value="Delete" />
<input type="hidden" name="id_fax" value="1" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
Hinweis: Ersetzen Sie
{Issabel IP}durch die IP-Adresse oder den Hostnamen des Zielservers. Der Wert vonid_faxkann geändert werden, um einen beliebigen virtuellen Faxdatensatz anhand seiner ID anzugreifen.
Melden Sie sich im Issabel PBX-Admin-Panel an und navigieren Sie zur Seite „Virtuelles Fax“:
https://{Issabel IP}/index.php?menu=faxnew&action=view&id=1

Fangen Sie die Lösch-Anfrage mit Burp Suite Proxy ab. Versuchen Sie, einen virtuellen Faxeintrag zu löschen, fangen Sie die Anfrage ab, klicken Sie mit der rechten Maustaste darauf und gehen Sie zu Engagement Tools → Generate CSRF PoC.

Speichern Sie den generierten CSRF-Exploit als HTML-Datei (siehe PoC oben).
Liefern Sie den Exploit an einen Benutzer, der bereits in der Issabel-Anwendung angemeldet ist (z. B. über eine Phishing-E-Mail oder einen schädlichen Link). Wenn das Opfer die Seite öffnet und auf „Submit request“ klickt, wird der virtuelle Faxeintrag ohne weitere Interaktion gelöscht.


Ein Angreifer hostet die schädliche HTML-Datei auf einem externen Server oder bettet sie in eine E-Mail ein. Wenn ein authentifizierter Issabel PBX-Administrator diese Seite in derselben Browsersitzung öffnet, sendet der Browser automatisch die gefälschte POST-Anfrage – einschließlich des gültigen Sitzungscookies – an den Issabel-Server. Der Server verarbeitet die Anfrage als legitim und löscht den anvisierten virtuellen Faxdatensatz. Das Opfer erhält keine Warnung und bemerkt die Löschung möglicherweise erst, wenn es die Faxliste manuell überprüft.
Um diese Schwachstelle zu beheben, sollte der Hersteller eine oder mehrere der folgenden Maßnahmen implementieren:
SameSite=Strict oder SameSite=Lax, um zu verhindern, dass der Browser es bei ursprungsübergreifenden Anfragen mitsendet.X-Requested-With: XMLHttpRequest) und überprüfen Sie ihn serverseitig.| Anwendung | issabel-pbx |
| Version | 4.0.0-6 |
| Angreifbare URL | /index.php?menu=faxnew&action=view&id=<ID> |
| Angreifbare Aktion | delete (POST-Parameter) |
| Fehlender Schutz | CSRF-Token / SameSite-Cookie-Attribut |