Database Tools, Java Driver и Laravel MongoDB содержат уязвимости. С их помощью можно обойти проверку доступа к документам, подменить выполняемую команду и принять недоверенный сертификат удостоверяющего центра. Затронуты утилиты для выгрузки базы, драйвер для Java и интеграция MongoDB с PHP-фреймворком Laravel. Исправления вышли; сведений об эксплуатации в реальных атаках источники не приводят.
Состав уведомления и оценки уязвимостей
Основа материала - бюллетени безопасности MongoDB от 28 октября 2026 года и записи CVE. Полные названия документов: Bulletin de sécurité MongoDB 5.12.0, Bulletin de sécurité MongoDB dbtools-100.20.0-changelog и Bulletin de sécurité MongoDB r5.14.0. Затронуты ветки Database Tools до 100.20.0, Java Driver до 5.14.0 и Laravel MongoDB до 5.12.0. Записи CVE не называют исправленную версию, поэтому номера исправлений взяты из примечаний к выпускам. Сводное уведомление в первой и последней редакции датировано 30 октября 2026 года.
Среди рисков бюллетень перечисляет нарушение целостности данных, обход политики безопасности и внедрение SQL-кода. Для Java Driver записи CVE уточняют тип: это NoSQL-инъекция, то есть подстановка служебных конструкций в запрос к базе.
Проверка отсутствия связи в Laravel MongoDB
Запись CVE-2026-118510 в Laravel MongoDB получила 8.8 из 10 по шкале CVSS (общая система оценки уязвимостей) - это высокий уровень. Причина - в построении запроса к связанным документам. Если идентификаторы хранятся как числовые строки, проверка отсутствия связанной записи собирается с идентификатором неверного типа. Сбой проходит молча, без сообщения об ошибке.
Пользователь с базовыми привилегиями получает доступ к документам, которые проверка должна была скрыть. Он может их изменить или удалить. Атака идёт по сети, сложность низкая, привилегии низкие. Участие пользователя не требуется.
Разбор BSON в Java Driver
Java Driver содержит NoSQL-инъекцию CVE-2026-118581 с оценкой 6.5 из 10 - средний уровень. Компонент кодирования BSON (двоичный формат документов MongoDB) не сверяет заявленную длину внешнего документа с размером буфера, из которого копирует данные. Приложение, оборачивающее недоверенные байты в такой документ, формирует структурно несогласованное сообщение. В результате база принимает хвостовые байты за дополнительные поля команды.
Ни драйвер, ни база не требуют аутентификации; участие пользователя тоже не нужно. Атака идёт по сети, сложность низкая. Достаточно, чтобы приложение позволяло влиять на передаваемые байты. В итоге меняется команда, а вместе с ней данные, которые читаются или записываются под учётной записью приложения.
Сертификаты в Database Tools
Запись CVE-2026-116641 касается Database Tools и имеет оценку 6.8 из 10 - средний уровень. Инструменты полагаются на проверку TLS (протокол шифрования соединения) из стандартной библиотеки Go. У этой библиотеки есть внутренний список запрещённых удостоверяющих центров, и версия Go 1.27.3 добавила в него сертификаты промежуточных центров eMudhra. Сборка Database Tools 100.19.0 опирается на Go 1.26.8, где проверки нет, поэтому такие сертификаты проходят.
Атака идёт по сети при высокой сложности. Привилегии не нужны, а вот без участия пользователя подложить сертификат не выйдет. Последствия - раскрытие и подмена данных внутри защищённого соединения. Доступность сервиса при этом не страдает.
Исправления и совместимость
Версии Database Tools 100.20.0, Java Driver 5.14.0 и Laravel MongoDB 5.12.0 устраняют эти ошибки. Обходных мер ни записи CVE, ни бюллетень не приводят. У Database Tools 100.20.0 есть побочный эффект: поддержка серверов MongoDB старше 4.2 прекращена. Целевой сервер и файлы дампа теперь должны быть версии 4.2 или новее.
В Laravel MongoDB 5.12.0 изменилась работа префикса соединения в методах схемы. Префикс теперь применяется и там, поэтому миграции с префиксом выполняются повторно. Приложение, передающее реальное имя коллекции, должно указывать имя без префикса. Примечания к выпуску относят запись CVE-2026-118510 к блоку усиления безопасности, где также запрещены серверные JavaScript-операторы в запросах.
Java Driver 5.14.0, помимо исправления, поднимает максимальную версию протокола связи для MongoDB 9.0. Database Tools 100.20.0 попутно исправляет два сбоя mongorestore: при восстановлении журнала операций и при работе с коллекциями временных рядов.
Ошибка в Laravel MongoDB срабатывает без сообщения и сразу меняет состав доступных документов. Проблема в Java Driver требует, чтобы приложение передавало в базу недоверенные байты. Ошибка в Database Tools - чтобы пользователь принял подложенный сертификат. Перед установкой исправлений администратору нужно сверить версию сервера MongoDB и проверить миграции с префиксом.
Ссылки
- https://www.cve.org/CVERecord?id=CVE-2026-116641
- https://www.cve.org/CVERecord?id=CVE-2026-118510
- https://www.cve.org/CVERecord?id=CVE-2026-118581
- https://jira.mongodb.org/browse/PHPLARA-148
- https://www.mongodb.com/docs/database-tools/release-notes/dbtools-100.20.0-changelog/
- https://github.com/mongodb/laravel-mongodb/releases/tag/5.12.0
- https://github.com/mongodb/mongo-java-driver/releases/tag/r5.14.0