Как одна ссылка в RabbitMQ выдаёт чужой OAuth-секрет и открывает доступ к данным других арендаторов?

Специалисты компании Miggo обнаружили в брокере сообщений RabbitMQ две уязвимости, связанные с проверкой прав доступа. Обе существуют с начала 2024 года и затрагивают все релизы линейки 3.13.0 и новее — то есть проблема жила в продукте почти два года, прежде чем о ней рассказали публично. По данным исследователей, никаких следов реальной эксплуатации до раскрытия информации найдено не было, что скорее везение, чем заслуга защитных механизмов.
Как одна ссылка в RabbitMQ выдаёт чужой OAuth-секрет и открывает доступ к данным других арендаторов?
Изображение носит иллюстративный характер

Первая и самая опасная дыра получила идентификатор CVE-2026-57219 с оценкой по CVSS 8.7. Суть проста до неприличия: устаревшая конечная точка HTTP API GET /api/auth отдаёт данные без какой-либо проверки авторизации. В Miggo объяснили это так: «Проверка авторизации на этом эндпоинте была жёстко зашита так, чтобы всегда пропускать запрос — в отличие от любого другого чувствительного управляющего эндпоинта». Иначе говоря, разработчики забыли (или не удосужились) поставить сюда тот же барьер, что стоит на остальных административных путях.
Проблема касается тех инсталляций, где настроен OAuth 2 через параметр конфигурации management.oauth_client_secret. Стоит атакующему отправить один-единственный запрос — и он получает в руки клиентский секрет. Дальше дело техники: секрет обменивается на административный токен, и злоумышленник получает полный контроль над брокером — над каждым сообщением, каждой очередью, каждым пользователем и всеми настройками системы. В Miggo сформулировали это без обиняков: уязвимость «раскрывает конфиденциальный OAuth-секрет брокера неаутентифицированному атакующему за один запрос — это прямой путь к полному захвату брокера в тех конфигурациях, где используется этот секрет».
Наибольший риск возникает там, где управляющий порт доступен из недоверенной сети — в облачных и мультитенантных развёртываниях, либо в тех случаях, когда веб-интерфейс управления по недосмотру администраторов оказался открыт наружу, в интернет. Такие ситуации встречаются чаще, чем принято думать: панель управления часто настраивают «на скорую руку» и забывают закрыть к ней доступ извне.
Вторая уязвимость, CVE-2026-57221, получила оценку CVSS 5.3 — заметно ниже, но тоже неприятная штука. Здесь отсутствует проверка авторизации иного рода: любой аутентифицированный пользователь, имеющий возможность подключиться к виртуальному хосту, способен перечислить все названия очередей и обменников в этом хосте, а заодно прочитать количество сообщений в очередях и число подключённых потребителей. Причём это происходит вне зависимости от того, какие права реально выданы конкретному пользователю — система просто не сверяется с разрешениями. По сути, это утечка метаданных между арендаторами: чужие данные вроде бы напрямую не читаются, но структура и активность соседней инфраструктуры становится видна как на ладони.
Обе дыры закрыты в версиях 4.3.0, 4.2.6, 4.1.11, 4.0.20 и 3.13.15. Тем, кто использует RabbitMQ с OAuth-конфигурацией и не успел обновиться, стоит в первую очередь ротировать секрет клиента OAuth — особенно если управляющий интерфейс хоть теоретически достижим из интернета. Порт 15672, на котором висит панель управления, лучше вообще держать закрытым для внешних сетей: ограничение доступа к нему снимает значительную часть риска даже на непропатченных инсталляциях. Отдельная рекомендация — разделять арендаторов по виртуальным хостам и не полагаться на общую конфигурацию как на достаточную изоляцию. Там, где обновление пока невозможно, помогут firewall-правила, блокирующие обращение к уязвимому эндпоинту.
Раскрытие этих двух проблем совпало по времени с исправлением ещё двух критических уязвимостей в RabbitMQ, о которых сообщили сами разработчики проекта. Одна касается обхода TLS-аутентификации клиента и получила оценку 9.1 по CVSS — практически максимум по шкале серьёзности. Вторая — уязвимость подделки JWKS (JSON Web Key Set) с оценкой 9.2, эксплуатируемая через позицию атакующего посередине (adversary-in-the-middle). Смысл атаки в том, что злоумышленник, перехвативший трафик между брокером и сервером ключей, подделывает ответ JWKS, и брокер начинает принимать произвольные JWT-токены как легитимные — фактически открывая дверь кому угодно.
Совокупность этих четырёх находок рисует не самую приятную картину: механизмы авторизации в RabbitMQ за последние пару лет проверялись не так тщательно, как хотелось бы разработчикам систем на его основе. Для компаний, использующих этот брокер в качестве связующего звена между микросервисами, обновление до последних версий сейчас выглядит не рекомендацией, а насущной необходимостью — особенно если управляющий интерфейс когда-либо был доступен извне периметра.


Новое на сайте

20327Кости прерий: как истребление бизонов породило целую индустрию — и сама себя же уничтожила 20326Кто и зачем взламывает серверы Ollama и ComfyUI ради ключей от AWS? 20325Как злоумышленники спрятали командный сервер внутри блокчейна и почему его невозможно... 20324Брюссель заставляет Android делиться секретами с чужими ИИ-помощниками 20323WordPress: как два бага слились в одну критическую дыру, которую назвали wp2shell 20322Как китайские хакеры обманули DigiCert и украли сертификаты для подписи кода? 20321Что скрывается за уязвимостью, которую агентство США внесло в список активно используемых... 20320Автономные системы наступают быстрее, чем инфраструктура для управления ими: кто выиграет... 20319Почему в OpenSSL нашли дыру, съедающую память серверов, но не дали ей даже номер CVE? 20317SonicWall SMA 1000: как два бага превратили VPN-шлюз в бэкдор для атакующих 20316Может ли уязвимость в клиенте Zoom для Windows открыть доступ к чужому аккаунту без... 20315TELEPUZ: новый вредонос на C, который научился прятаться в Telegram, Steam и блокчейне... 20314Дома из дёрна: как исландцы триста лет прятались от холода под слоем земли и травы 20313Как один токен от чужого сервиса мог впустить злоумышленника в чужой аккаунт n8n?
Ссылка