Массовые взломы стартовали 21 августа, однако полная картина происходящего стала доступна только сейчас.
В экосистеме IP-телефонии обнаружили и сразу же стали активно использовать уязвимость в FreePBX — сообщество заметило массовые компрометации ещё 21 августа 2025 года, а затем на форуме начали всплывать одинаковые симптомы и следы чужих рук. Исследователи из watchTowr Labs подтвердили , что речь идёт об удалённой атаке без аутентификации, связанной с коммерческим модулем Endpoint и ошибкой в обработке классового автозагрузчика.
Проблеме присвоен идентификатор CVE-2025-57819 . FreePBX — это веб-интерфейс для Asterisk, который используют от домашних энтузиастов до провайдеров услуг и корпоративных систем, поэтому последствия затрагивают не только внутренние панели, но и доступ к звонкам, голосовой почте и записям переговоров.
Первым тревожным звоночком 25 августа стали массовые падения интерфейса с ошибкой PHP о недостающем классе Symfony. Уже на следующий день один из администраторов показал файл.clean.sh, внезапно появившийся на сервере. Скрипт проходился по журналам в «/var/log/*», выборочно чистил строки, где могли остаться упоминания веб-шеллов и служебных имён, после чего удалял сам себя. Подобная очистка логов — типичный признак постэксплуатации, когда злоумышленники затирают следы и усложняют разбор инцидента.
WatchTowr развернули полностью отслеживаемый сенсор FreePBX и сопоставили поведение «до» и «после» исправлений. Выяснилось, что прямой вход в уязвимый код находится внутри модуля Endpoint, а решающую роль играет связка маршрутизации /admin/ajax.php и механизм автозагрузки классов. В исходниках FreePBX есть проверка class_exists на значение параметра module, и при стандартном значении автозагрузки PHP этот вызов передаёт строку в пользовательский fpbx_framework_autoloader.
Если подать модуль вида «FreePBX\modules\endpoint\ajax», автозагрузчик собирает путь «/admin/modules/endpoint/ajax.php» и просто включает соответствующий файл — причём до проверки сессии. Так происходит запуск кода модуля без логина, а дальше вступает в дело ошибка валидации в Endpoint: SQL-инъекция в параметрах ajax-обработчика позволяет манипулировать базой данных FreePBX.
На практике атакующие сначала создавали скрытого администратора «ampuser» — это подтверждается пойманными honeypot-запросами, где в параметр brand инжектировалась INSERT-операция в таблицу ampusers. Далее, чтобы перейти от доступа к базе данных к исполнению команд, они добавляли запись в таблицу cron_jobs со стандартным расписанием «* * * * *», указывая полезную нагрузку в поле command — таким образом код выполнялся раз в минуту от имени системных утилит FreePBX. Эту цепочку watchTowr воспроизвели в лаборатории, а для проверки следов опубликовали генератор артефактов детектирования, который поочерёдно пытается записать веб-оболочку через cron либо добавить нового пользователя.
Разработчики FreePBX отреагировали оперативно и порекомендовали временно закрыть административный интерфейс по IP-спискам или фаерволом, а также установить внеплановые обновления для модуля Endpoint. Для FreePBX 16/17 предложена команда «fwconsole ma downloadinstall endpoint —edge», для PBXAct 16 — «—tag 16.0.88.19», для PBXAct 17 — «—tag 17.0.2.31».
В описании инцидента команда FreePBX отдельно указала, что со 21 августа 2025 года неизвестный начал обращаться к системам версии 16 и 17, доступным из интернета без должной фильтрации, и после начального входа цепочка шагов давала права вплоть до root. При этом watchTowr подчёркивают — модульное исправление закрывает SQL-инъекцию, но корневая причина с автозагрузкой в ядре ещё требует переосмысления, поскольку предаутентификационное подключение отдельных «.php» внутри «admin/modules» остаётся доступным маршрутом.
Отдельно команда напомнила, что весной уже сообщала FreePBX о постаутентификационной командной инъекции CVE-2025-55211 , публикация по которой затянулась за пределы стандартного окна раскрытия. В сумме это рисует неприятную картину: коммерческие надстройки, закрытые ionCube, сочетаются с уязвимой связкой маршрутизации и автозагрузки, а атакующие быстро конвертируют доступ к панели в прослушивание телефонии и закрепление в инфраструктуре. Подобная картина с критическими уязвимостями наблюдается и в других корпоративных системах.
На стороне защитников остаются базовые меры — сегментация и фильтрация доступа к админке, оперативная установка исправлений модулей, контроль целостности веб-каталогов «/admin/modules» и аудит БД на предмет неожиданных записей в ampusers и cron_jobs, а также поиск следов работы .clean.sh в системных журналах. Как показывают современные атаки , злоумышленники становятся всё изощрённее в обходе защитных механизмов.