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-приложений, которые быстро выкладывают в сеть, такая цена ошибки стала привычной, а исправление занимает один релиз. Проверить версию и обновиться дешевле, чем разбираться с последствиями выполнения чужого кода на сервере.
Ссылки
- https://bdu.fstec.ru/vul/2026-17113
- https://www.cve.org/CVERecord?id=CVE-2026-111058
- https://github.com/mljar/mercury/commit/73a40ceb0becf057f495a5738ad7f5a5222a53e1
- https://github.com/mljar/mercury/releases/tag/3.2.6
- https://github.com/mljar/mercury/security/advisories/GHSA-rv4m-xm3f-3ccq
- https://github.com/ExDev994/CVE-2026-111058-CVE-2026-111057-mercury-rce