CVE-2026-95843: некорректные shared-подписки в Moquette приводят к отказу в обслуживании
В MQTT-брокере Moquette обнаружена уязвимость высокого уровня опасности (CVSS 8.7), позволяющая удалённому клиенту обрушить обработку команд через специально сформированный фильтр shared-подписки. Проблема затрагивает версии до 0.18.1 и может привести к отказу в обслуживании других клиентских сессий.
Подробности
Уязвимость затрагивает все версии Moquette до 0.18.1 включительно. При обработке shared-подписки метод PostOffice.subscribe разбирает фильтр через SharedSubscriptionUtils.extractShareName ещё до того, как будет выполнена проверка полной структуры вида $share/{shareName}/{topicFilter}. Из-за этого удалённый клиент может отправить некорректный фильтр, например $share/grp без обязательной части с топиком. При попытке вычислить имя группы (share name) возникает исключение StringIndexOutOfBoundsException. Это исключение прерывает обработку команд в цикле событий (event loop) той сессии, к которой привязана подписка. В результате могут перестать обслуживаться и другие клиентские сессии, закреплённые за тем же циклом, что приводит к отказу в обслуживании (DoS). Уязвимости присвоен уровень опасности HIGH с оценкой CVSS 8.7.Что делать
Разработчики выпустили исправление в версии 0.18.1. Рекомендуется как можно скорее обновить Moquette до этой или более поздней версии. Если немедленное обновление невозможно, следует рассмотреть временные митигации: ограничить доступ к брокеру доверенными клиентами, применять аутентификацию и ACL, а также фильтровать на стороне прокси или шлюза подписки, содержащие конструкцию $share без корректного завершения — {topicFilter}. Однако такие меры не устраняют причину уязвимости и должны рассматриваться лишь как временное решение. Итог: CVE-2026-95843 — серьёзная проблема для инфраструктур на базе Moquette, допускающая удалённый отказ в обслуживании. Единственный надёжный способ защиты — переход на версию 0.18.1 или новее.Источник: CVE Project (cvelistV5)
