
Esiste una vulnerabilità di Cross-Site Request Forgery (CSRF) in issabel-pbx v4.0.0-6 all'interno della funzionalità di gestione del Virtual Fax.
ID CVE: CVE-2023-37598
Tipo di vulnerabilità: Cross-Site Request Forgery (CSRF)
Prodotto interessato: issabel-pbx v4.0.0-6
Severità: Media
Scoperta da: Sahil Ojha
Data di divulgazione: 10/07/2023
Homepage del vendor: https://www.issabel.org/
Repository del software: https://github.com/IssabelFoundation/issabelPBX
Testato su: Windows
Una vulnerabilità di tipo Cross-Site Request Forgery (CSRF) è presente in issabel-pbx v4.0.0-6 nella funzionalità di gestione del Virtual Fax. L'applicazione non implementa protezioni CSRF (ad es. token anti-CSRF o attributi dei cookie SameSite) sull'azione di eliminazione delle voci di virtual fax.
Ciò consente a un attaccante remoto non autenticato di creare una pagina HTML malevola che — quando visitata da un amministratore o utente autenticato — invia silenziosamente una richiesta HTTP falsificata all'applicazione per conto della vittima. La richiesta falsificata causa l'eliminazione dei record di virtual fax senza la conoscenza o il consenso della vittima, con conseguente perdita di dati e interruzione dei servizi fax.
Il Cross-Site Request Forgery (CSRF) è un attacco che induce il browser della vittima a inviare una richiesta autenticata a un'applicazione web senza l'intenzione dell'utente. Poiché il browser include automaticamente i cookie di sessione in ogni richiesta, il server non può distinguere una richiesta legittima da una falsificata quando non è presente un token CSRF.
| Parametro | Valore |
|---|
Il seguente file HTML, quando aperto da un utente issabel-pbx autenticato, invierà automaticamente una richiesta POST falsificata che elimina il virtual fax con id_fax=1.
File: 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>
Nota: sostituire
{Issabel IP}con l'indirizzo IP o il nome host del server di destinazione. Il valore diid_faxpuò essere modificato per prendere di mira qualsiasi record di virtual fax tramite il suo ID.
Accedi al pannello di amministrazione di Issabel PBX e vai alla pagina Virtual Fax:
https://{Issabel IP}/index.php?menu=faxnew&action=view&id=1

Cattura la richiesta di eliminazione utilizzando il proxy Burp Suite. Prova a eliminare una voce di Virtual Fax, intercetta la richiesta, fai clic con il tasto destro su di essa e vai su Engagement Tools → Generate CSRF PoC.

Salva l'exploit CSRF generato come file HTML (vedi il PoC sopra).
Consegna l'exploit a un utente già autenticato nell'applicazione Issabel (ad es. tramite email di phishing o un collegamento malevolo). Quando la vittima apre la pagina e fa clic su "Submit request", la voce di Virtual Fax viene eliminata senza ulteriori interazioni.


Un attaccante ospita il file HTML malevolo su un server esterno o lo incorpora in un'email. Quando un amministratore autenticato di Issabel PBX apre questa pagina nella stessa sessione del browser, il browser invia automaticamente la richiesta POST falsificata — incluso il cookie di sessione valido — al server Issabel. Il server elabora la richiesta come legittima, eliminando il record di virtual fax preso di mira. La vittima non riceve alcun avviso e potrebbe non notare l'eliminazione finché non ispeziona manualmente l'elenco dei fax.
Per correggere questa vulnerabilità, il vendor dovrebbe implementare una o più delle seguenti mitigazioni:
SameSite=Strict o SameSite=Lax per impedire al browser di inviarlo con richieste cross-origin.X-Requested-With: XMLHttpRequest) per tutte le operazioni sensibili e verificarla lato server.| Applicazione | issabel-pbx |
| Versione | 4.0.0-6 |
| URL vulnerabile | /index.php?menu=faxnew&action=view&id=<ID> |
| Azione vulnerabile | delete (parametro POST) |
| Protezione mancante | Token CSRF / attributo cookie SameSite |