Sploitus

Exploit for CVE-2025-14847---MongoBleed

kitploit · 2026-08-25

Exploit Code

MARKDOWN86 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SAEREYA-CVE-2025-14847---MONGOBLEED
# Mongobleed (CVE-2025-14847) – Proof of Concept на Go

Этот репозиторий содержит proof-of-concept эксплойт на Go для **CVE-2025-14847** , уязвимости раскрытия памяти MongoDB, часто называемой **Mongobleed**.

Данный PoC является переписанной на Go версией оригинального эксплойта на Python от **Joe Desimone** , доступного здесь:  
https://github.com/joe-desimone/mongobleed

Эксплойт использует ошибку декомпрессии zlib и парсинга BSON для утечки неинициализированной памяти из уязвимого сервера MongoDB.

Прочитайте пост в блоге - https://saereya.github.io/posts/mongobleed-cve-2025-14847/

## Обзор уязвимости

**CVE-2025-14847** вызвана некорректной обработкой сжатых сообщений `OP_MSG` в MongoDB. Создавая искажённый BSON-документ с завышенной длиной документа и помещая его в сообщение `OP_COMPRESSED`, сервер может выполнять чтение за пределами буфера декомпрессии.

Это может привести к тому, что MongoDB интерпретирует остатки памяти как имена полей BSON, которые затем отражаются в сообщениях об ошибках. Повторение этого процесса с разными смещениями может привести к утечке фрагментов памяти сервера.

## Техника эксплуатации

Этот PoC:

  * Создаёт минимальный BSON-документ с поддельной длиной документа
  * Сжимает его с помощью zlib
  * Оборачивает в сообщение `OP_COMPRESSED` протокола MongoDB
  * Отправляет его напрямую через TCP без аутентификации
  * Парсит ответы с ошибками для извлечения фрагментов памяти



Утёкшие данные извлекаются из строк ошибок, таких как:

  * `field name '...'`
  * `type <n>`



## Затронутые версии

Эта уязвимость затрагивает определённые версии MongoDB до выхода соответствующего патча.  
Обратитесь к рекомендациям MongoDB по безопасности для точного списка версий.

## Использование

Сборка:

root@kitploit:~
    
    
    go build -o mongobleed
    

Запуск:

root@kitploit:~
    
    
    ./mongobleed --host <цель> --port 27017
    

Необязательные флаги: \--min-offset: Начальная длина BSON-документа (по умолчанию: 20) \--max-offset: Конечная длина BSON-документа (по умолчанию: 8192)

## Вывод:

root@kitploit:~
    
    
    [*] MongoBleed - CVE-2025-14847
    [*] Targetting localhost:27017
    [*] Offset:  20 -> 8192
    [+] offset= 117 len=  51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
    [+] offset= 119 len=  51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
    [+] offset= 120 len=  51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
    [+] offset= 121 len=  51: ssions^\u0001f\bD\\��A6�;7\u0003��V%\u0019\u001a9ip
    

## Отказ от ответственности

Этот код предоставлен только для образовательных и исследовательских целей.

Не запускайте этот инструмент против систем, которые вам не принадлежат или на тестирование которых у вас нет явного разрешения. Несанкционированное использование может быть незаконным и неэтичным.

## Благодарности

  * Оригинальный эксплойт на Python: 
    * Joe Desimone https://github.com/joe-desimone/mongobleed