CVE-2025-14847

MongoDB MongoDB and MongoDB Server

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2025-12-29

Официальное описание

MongoDB Server contains an improper handling of length parameter inconsistency vulnerability in Zlib compressed protocol headers. This vulnerability may allow a read of uninitialized heap memory by an unauthenticated client.

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость CVE-2025-14847 связана с некорректной обработкой параметров длины в заголовках протокола при использовании сжатия Zlib.

  • Механизм: При получении специально сформированного сетевого пакета со сжатием Zlib, сервер MongoDB не проверяет должным образом соответствие заявленной и фактической длины данных.
  • Вектор атаки: Эксплуатация возможна удаленно и не требует аутентификации (Unauthenticated).
  • Последствия: Ошибка приводит к чтению неинициализированной памяти кучи (Heap Out-of-Bounds Read). Это позволяет злоумышленнику получить доступ к фрагментам оперативной памяти сервера, что может привести к утечке конфиденциальных данных (учетные записи, токены, фрагменты баз данных) или к отказу в обслуживании (DoS) из-за падения процесса mongod.

Как исправить

Единственным надежным способом устранения уязвимости является обновление MongoDB Server до версии, в которой выпущен официальный патч от вендора.

  1. Создайте резервную копию ваших баз данных и конфигурационных файлов.
  2. Обновите пакеты MongoDB через пакетный менеджер вашей ОС.

Для систем на базе Debian/Ubuntu:

apt-get update
apt-get install --only-upgrade mongodb-org
systemctl restart mongod

Для систем на базе RHEL/CentOS/AlmaLinux:

yum clean all
yum update mongodb-org
systemctl restart mongod

  1. Убедитесь, что служба успешно запущена и версия обновлена:
mongod --version

Временные меры

Если немедленное обновление невозможно, необходимо применить компенсирующие меры (Workarounds), чтобы снизить риск эксплуатации.

  1. Отключение сжатия Zlib Поскольку уязвимость кроется в обработчике Zlib, исключите его из списка поддерживаемых алгоритмов сжатия сетевых сообщений. Оставьте только безопасные алгоритмы (например, snappy или zstd) или полностью отключите сжатие.

Отредактируйте файл конфигурации /etc/mongod.conf:

net:
  port: 27017
  bindIp: 127.0.0.1
  compression:
    compressors: snappy,zstd

После изменения конфигурации обязательно перезапустите службу:

systemctl restart mongod

  1. Ограничение сетевого доступа (Network Segmentation) Так как уязвимость эксплуатируется без аутентификации, критически важно ограничить доступ к порту MongoDB (по умолчанию 27017) только для доверенных IP-адресов (серверов приложений).

Пример настройки через UFW (Ubuntu/Debian):

ufw deny 27017/tcp
ufw allow from 10.0.0.50 to any port 27017/tcp

Пример настройки через firewalld (RHEL/CentOS):

firewall-cmd --permanent --zone=public --remove-port=27017/tcp
firewall-cmd --permanent --zone=trusted --add-source=10.0.0.50
firewall-cmd --permanent --zone=trusted --add-port=27017/tcp
firewall-cmd --reload

  1. Мониторинг аномалий Настройте SIEM или системы мониторинга на отслеживание внезапных падений процесса mongod (OOM, Segmentation Faults) и подозрительной сетевой активности на порту базы данных от неизвестных хостов.