Обработчик веб-сокетов в Mercury открывает путь к выполнению кода без авторизации

vulnerability

Python-фреймворк Mercury до версии 3.2.5 включительно позволяет удалённому злоумышленнику выполнить произвольный код на сервере. Учётные данные не нужны: проверка прав в обработчике веб-сокетов отсутствует. Проблема получила идентификатор CVE-2026-111058 и внесена в Банк данных угроз безопасности информации под номером BDU:2026-17113. Оценка по CVSS 3.1 - 9,8 из 10, по CVSS 2.0 - 10. Обе шкалы относят уязвимость к критическому уровню опасности.

Уязвимость CVE-2026-111058 в фреймворке Mercury

Обработчик веб-сокетов принимает соединение и передаёт полученные данные в приложение. Права отправителя он при этом не проверяет. Класс ошибки - отсутствие авторизации (CWE-862). Проверки нет, поэтому запрос с любого узла сети доходит до уязвимого кода и исполняется с правами сервиса.

Вектор атаки простой: сетевой доступ, низкая сложность, никаких привилегий и никакого участия пользователя. Злоумышленнику не требуется учётная запись, не нужен вход в панель управления и не нужна жертва, которая согласится нажать ссылку. Достаточно, чтобы экземпляр Mercury отвечал на запросы из сети.

Под удар попадают все, кто держит Mercury версии 3.2.5 и ниже. Особенно рискованная конфигурация - сервис, открытый в интернет. Прикладное программное обеспечение информационных систем часто ставят на периметр, чтобы делиться расчётами и отчётами с внешними пользователями, и тогда отсутствие проверки прав превращается в открытую точку входа. Полный список операционных систем и аппаратных платформ в описании пока не уточнён.

Эксплойт уже есть в открытом доступе. Демонстрационный вариант опубликован на GitHub, где проект и развивается. Уязвимость выявили 21 августа 2026 года, разработчики её подтвердили. Публичный рабочий эксплойт и подтверждение вендора вместе означают, что времени на раздумья почти не остаётся: любой, кто прочитал описание, может повторить атаку.

Проблему закрыли в версии 3.2.6. Исправление вошло в отдельный коммит в репозитории проекта, релиз доступен в разделе загрузок. Иных мер, кроме обновления, в рекомендациях производителя нет. Обходных настроек, которые сохраняли бы работоспособность уязвимого обработчика, вендор не описал.

Администраторам стоит перевести Mercury на версию 3.2.6. Если обновление откладывается, экземпляры с доступом из интернета лучше перевести в закрытый сегмент сети или остановить до установки исправления. Журналы веб-сервера имеет смысл просмотреть на предмет обращений к обработчику веб-сокетов с незнакомых адресов. Заодно проверьте, не запущены ли тестовые копии Mercury на тех же хостах: их обычно обновляют последними.

Ошибка выглядит безобидно на фоне сложных цепочек атак, хотя последствия у неё максимальные. Одна пропущенная проверка прав сводит на нет остальные средства защиты: пароли, роли и ограничения интерфейса ничего не значат, если один обработчик принимает команды от кого угодно. Для Python-приложений, которые быстро выкладывают в сеть, такая цена ошибки стала привычной, а исправление занимает один релиз. Проверить версию и обновиться дешевле, чем разбираться с последствиями выполнения чужого кода на сервере.

Ссылки

Комментарии: 0