Поддержать проект Telegram
Безопасность / Уязвимости

MongoDB CVE-2025-14847 утечка памяти без аутентификации

Инциденты MongoDB Уязвимость
MongoDB CVE-2025-14847 утечка памяти без аутентификации

В MongoDB выявили уязвимость высокой критичности CVE-2025-14847 с оценкой 8.7 по CVSS. Суть неприятная: неаутентифицированный клиент (то есть без логина/пароля) потенциально может заставить сервер вернуть неинициализированные данные из heap-памяти, по факту, куски того, что лежало в оперативной памяти.

Причина уязвимости классическая, ошибка работы с длинами: когда в заголовке/поле длины написано одно, а реальная длина данных другая, и код обрабатывает это криво. В данном случае речь про несоответствие length-полей в заголовках протокола при сжатии Zlib: из-за такого рассинхрона сервер может прочитать и отдать клиенту неинициализированную heap-память.

Уязвимость затрагивает довольно широкий пласт веток MongoDB:

  • MongoDB 8.2.0–8.2.3
  • MongoDB 8.0.0–8.0.16
  • MongoDB 7.0.0–7.0.26
  • MongoDB 6.0.0–6.0.26
  • MongoDB 5.0.0–5.0.31
  • MongoDB 4.4.0–4.4.29
  • а также все версии MongoDB Server веток 4.2, 4.0 и 3.6 (полностью)

Исправления уже выпущены. Проблема закрыта в версиях: MongoDB 8.2.3, 8.0.17, 7.0.28, 6.0.27, 5.0.32 и 4.4.30.

MongoDB прямо отмечает, что клиентская эксплуатация zlib-реализации на сервере может вернуть неинициализированную heap-память без прохождения аутентификации, поэтому рекомендация простая и честная: обновиться как можно быстрее.

И да, неинициализированная память это не абстракция. Как объясняет OP Innovate, в таких утечках иногда всплывают чувствительные данные, которые временно были в оперативке: внутренние состояния, указатели, куски структур, обрывки информации, которые могут помочь злоумышленнику в дальнейших шагах.

Если апдейт мгновенно невозможен, временная мера, отключить zlib-сжатие на стороне сервера MongoDB. Для этого при запуске mongod или mongos нужно явно настроить параметры networkMessageCompressors или net.compression.compressors так, чтобы zlib там не было.

MongoDB поддерживает и другие компрессоры: snappy и zstd. То есть совсем без сжатия уходить не обязательно: можно просто убрать именно zlib и остаться на альтернативе.

Связанные материалы

Статья

Как построить секретное хранилище, устойчивое к утечкам

Твоя флешка — не хранилище. Файл в Dropbox — не резерв. А .env в репозитории — просто приглашение для взлома. …

10.04.2025 • 15 мин чтения

Поделиться новостью

Оставить комментарий

Комментарий будет опубликован после модерации

Все новости