MongoDB обнаружила и устранила 25 уязвимостей, затрагивающих сервер и официальные драйверы. Одна из самых серьёзных проблем позволяет злоумышленнику с доступом к сети понизить защиту внутренней аутентификации узлов кластера и получить ключ, дающий права суперпользователя. Разработчики уже выпустили исправления для всех затронутых линеек, включая кандидат в релизы девятой версии.
Детали уязвимостей
Самая опасная уязвимость, идентификатор CVE-2026-18691, получила оценку 9.0 по шкале CVSS v4.0. Она связана с установкой соединений между участниками реплика-сета. При согласовании механизмов аутентификации один узел доверяет списку, присланному другим узлом. Проверка на соответствие разрешённым значениям отсутствует. Атакующий, контролирующий сетевой трафик, может подменить ответ и указать механизм PLAIN, который передаёт учётные данные без шифрования. В результате внутренний ключ кластера уходит злоумышленнику. После этого он получает доступ к узлам как внутренний суперпользователь. Исправление вышло в версиях 7.0.40, 8.0.29, 8.2.13, 8.3.8 и 9.0.0-rc2.
Остальные уязвимости охватывают широкий спектр функций сервера. Многие из них связаны с обработкой коллекций для временных рядов (timeseries). Например, CVE-2026-18692 и CVE-2026-18693 возникают из-за некорректного управления памятью при работе с сегментами таких коллекций. В ряде случаев это приводило к аварийному завершению сервера, а при определённых условиях - к выполнению произвольного кода или раскрытию содержимого памяти. Похожие ошибки найдены в геопространственных запросах (CVE-2026-18694, CVE-2026-18700) и в агрегационном фреймворке (CVE-2026-18688). CVE-2026-18711 связана с использованием памяти после освобождения в движке запросов. Это позволяло не только остановить сервер, но и получить фрагменты памяти в результатах запроса.
Отдельную группу составляют проблемы авторизации. CVE-2026-18704 даёт пользователю с правами только на чтение возможность выполнять операции записи через внутренний этап агрегации, доступный внешним клиентам. CVE-2026-18690 и CVE-2026-18698 позволяют учётной записи с ограниченными правами на базу данных воздействовать на защищённые системные коллекции, вплоть до их удаления и повторного создания. CVE-2026-18712 затрагивает функцию Queryable Encryption (шифрование с сохранением возможности выполнения запросов). Пользователь, имеющий права на одну зашифрованную коллекцию, может изменять или уничтожать данные другой коллекции. Кроме того, CVE-2026-18702 позволяет ограниченному пользователю менять глобальные диагностические настройки сервера. Это даёт возможность скрыть следы активности или вызвать чрезмерный объём журналирования.
Особого внимания заслуживает CVE-2026-18697. Она позволяет неаутентифицированному злоумышленнику отправить специально сформированную агрегационную команду и вызвать остановку процесса маршрутизатора mongos (компонента, направляющего запросы к шардам). Это приводит к отказу в обслуживании для всех клиентских соединений, проходящих через маршрутизатор. Проблема особенно актуальна для шардированных кластеров, где mongos является обязательной частью инфраструктуры.
Ещё одна уязвимость, CVE-2026-18701, возникает из-за ошибки типов в подсистеме запросов. Пользователь с правами чтения может отправить специально сформированный фильтр и вызвать аварийное завершение серверного процесса. CVE-2026-18708 связана с JavaScript-движком: записанное пользователем значение при обработке внутренним циклом обслуживания может выполнить код в контексте запросов других пользователей. Это способно искажать результаты их работы или вызывать отказ в обслуживании. Доступ ограничен песочницей скриптового движка, поэтому обратиться к базе, файловой системе или сети злоумышленник не сможет. CVE-2026-18709 нарушает координацию транзакций в шардированном кластере. Пользователь с прямым доступом к шарду может завершить подготовленную транзакцию в обход координатора, что ведёт к рассинхронизации данных.
Отдельная проблема касается драйвера MongoDB. CVE-2026-18710 связана с логированием параметров прокси. При создании каждого клиента драйвер по умолчанию записывает в журнал полную конфигурацию, включая пароль для SOCKS5-прокси. Из-за отсутствия маскировки пароль попадает в открытом виде в логи приложения и далее в системы сбора журналов. Любой, у кого есть доступ к журналам, может извлечь учётные данные. Их можно использовать для подключения к прокси-инфраструктуре. Проблема затрагивает версии драйвера с 4.11.0 до 5.9.2, исправление вышло в версии 5.9.2.
В общей сложности уязвимости затрагивают MongoDB Server начиная с версии 7.0.0 и заканчивая 8.3.8, а также кандидат в релизы 9.0.0-rc2. Пользователям рекомендуется обновить серверы до версий 7.0.40, 8.0.29, 8.2.13 или 8.3.8 в зависимости от используемой линейки. Для драйверов актуальной является версия 5.9.2. MongoDB опубликовала подробности в своём бюллетене безопасности, ссылка доступна на официальном сайте. Для большинства перечисленных проблем обходных путей не существует, поэтому установка патчей - основной способ защиты.
Уязвимости охватывают как серверную часть, так и клиентские библиотеки, что напоминает о необходимости следить за безопасностью всей цепочки поставок. Особенно это важно для организаций, использующих MongoDB в критически важных системах.
Ссылки
- https://jira.mongodb.org/browse/JAVA-6266
- https://jira.mongodb.org/browse/SERVER-115508
- https://jira.mongodb.org/browse/SERVER-127863
- https://jira.mongodb.org/browse/SERVER-128482
- https://jira.mongodb.org/browse/SERVER-128551
- https://jira.mongodb.org/browse/SERVER-129460
- https://jira.mongodb.org/browse/SERVER-129617
- https://jira.mongodb.org/browse/SERVER-129618
- https://jira.mongodb.org/browse/SERVER-129887
- https://jira.mongodb.org/browse/SERVER-129936
- https://jira.mongodb.org/browse/SERVER-129994
- https://jira.mongodb.org/browse/SERVER-130111
- https://jira.mongodb.org/browse/SERVER-130117
- https://jira.mongodb.org/browse/SERVER-130139
- https://jira.mongodb.org/browse/SERVER-130167
- https://jira.mongodb.org/browse/SERVER-130188
- https://jira.mongodb.org/browse/SERVER-130198
- https://jira.mongodb.org/browse/SERVER-130247
- https://jira.mongodb.org/browse/SERVER-130264
- https://jira.mongodb.org/browse/SERVER-130266
- https://jira.mongodb.org/browse/SERVER-130481
- https://jira.mongodb.org/browse/SERVER-130544
- https://jira.mongodb.org/browse/SERVER-130628
- https://jira.mongodb.org/browse/SERVER-130633