
MongoDB CVE-2025-14847 Сканер утечки памяти кучи | Уязвимость OP_COMPRESSED zlib | Инструмент для Bug Bounty и Red Team
MongoBleed — это высокопроизводительный PoC-сканер для CVE-2025-14847, уязвимости раскрытия памяти в куче до аутентификации в MongoDB C++ Driver. Инструмент предназначен для быстрого выявления уязвимых экземпляров в больших сетевых диапазонах.
Уязвимость возникает из-за чтения за границами (OOB) в обработке сообщений OP_COMPRESSED протокола MongoDB wire.
Когда сервер получает пакет OP_COMPRESSED, он использует указанное атакующим поле uncompressedSize для выделения буфера под декомпрессию. Если фактические распакованные данные значительно меньше заявленного uncompressedSize, драйвер не урезает и не очищает буфер. В результате сервер возвращает весь выделенный блок памяти, который может содержать неинициализированные данные из кучи, потенциально раскрывая конфиденциальную информацию, такую как токены сессий, внутренние указатели или фрагменты других запросов к базе данных.
asyncio для высококонкурентного сканированияvulnerable_targets.txtgit clone https://github.com/Black1hp/mongobleed-scanner/
cd mongobleed-scanner
Внешние зависимости не требуются (только стандартная библиотека Python).
Базовое использование:
python3 mongobleed.py -i targets.txt
Расширенная конфигурация:
python3 mongobleed.py -i targets.txt -c 100 -t 5
-i : Входной файл с целями (IP, домен или IP:порт)-c : Уровень параллелизма (по умолчанию: 50)-t : Тайм-аут подключения в секундах (по умолчанию: 5)Сканер выявляет уязвимость, используя несоответствие размера на фазе декомпрессии BSON:
OP_COMPRESSED, содержащий небольшую полезную нагрузку, сжатую zlib (например, 16-30 байт).uncompressedSize в заголовке пакета намеренно устанавливается в гораздо большее значение (например, 64 КБ).MessageLength, соответствующим запрошенному большому размеру буфера, а не фактическому размеру распакованных данных.uncompressedSize для определения длины ответа. Поскольку он не обновляет эту длину в соответствии с фактически записанными при декомпрессии байтами, он слепо передаёт весь выделенный буфер кучи — включая неинициализированную память — обратно клиенту.Примечание: Видео выше демонстрирует, как сканер выявляет несколько уязвимых экземпляров и захватывает фрагменты кучи в реальном времени.
Black1hp Исследователь безопасности | Охотник за багами | Red Teamer
Этот инструмент предназначен только для авторизованного тестирования безопасности и исследовательских целей. Автор не несёт ответственности за любое несанкционированное использование или ущерб, возникший в результате использования этого инструмента.