
Лаборатория эксплойтов, docker и сканер кода для уязвимости mongobleed CVE-2025-14847, а также инструменты Phoenix Security Sync
CVE-2025-14847 | CVSS 8.7 (High) | Неаутентифицированное раскрытие памяти
📖 Полная документация • 🔬 Технический анализ • ⚡ Быстрые команды
MongoBleed — критическая уязвимость раскрытия памяти в сетевом транспортном уровне MongoDB, которая позволяет неаутентифицированным удалённым злоумышленникам похищать чувствительную память кучи без каких-либо учётных данных или взаимодействия с пользователем.
| Категория | Описание |
|---|---|
| Тип атаки | Удалённое неаутентифицированное раскрытие памяти |
| Корневая причина | Декомпрессия zlib возвращает размер выделенного буфера вместо фактической длины данных |
| Раскрываемые данные | Пароли баз данных, API-ключи, токены сессий, учётные данные AWS, внутреннее состояние сервера |
| Серьёзность | CVSS 8.7 (High) — доступна по сети, аутентификация не требуется |
| Эксплуатация | Активная эксплуатация в дикой природе наблюдается с 28 декабря 2025 года |
| Ветка | Уязвимые | Исправление | Действие |
|---|---|---|---|
| 8.2.x | 8.2.0 → 8.2.2 | 8.2.3 | Обновить немедленно |
| 8.0.x | 8.0.0 → 8.0.16 | 8.0.17 | Обновить немедленно |
| 7.0.x | 7.0.0 → 7.0.27 | 7.0.28 | Обновить немедленно |
| 6.0.x | 6.0.0 → 6.0.26 | 6.0.27 | Обновить немедленно |
| 5.0.x | 5.0.0 → 5.0.31 | 5.0.32 | Обновить немедленно |
| 4.4.x | 4.4.0 → 4.4.29 | 4.4.30 | Обновить немедленно |
| ≤4.2.x | Все версии | Нет | ⚠️ EOL — перейти на поддерживаемую версию |
| Аспект | Детали |
|---|---|
| Что уязвимо | Сетевой транспортный уровень MongoDB Server, использующий сжатие zlib |
| Серьёзность | Высокая (CVSS 8.7/7.5) |
| Воздействие | Неаутентифицированное удалённое раскрытие неинициализированной памяти кучи |
| Почему это важно | Утёкшие фрагменты содержат пароли баз данных, секретные ключи AWS и внутренние состояния сервера |
| Статус эксплойта | Публичный Proof-of-Concept (PoC) «mongobleed» подтверждён и распространяется |
| Что делать сегодня | Немедленно обновиться до исправленных версий или отключить сжатие zlib |
Уязвимость находится в сетевом транспортном уровне MongoDB (message_compressor_zlib.cpp), где критическая ошибка в логике декомпрессии zlib позволяет неаутентифицированным злоумышленникам раскрывать чувствительную память сервера.
// VULNERABLE CODE (before fix)
counterHitDecompress(input.length(), output.length());
return {output.length()}; // ❌ Returns ALLOCATED buffer size
// PATCHED CODE (after fix)
counterHitDecompress(input.length(), output.length());
return length; // ✅ Returns ACTUAL decompressed data length
┌─────────────────────────────────────────────────────────────────────────────┐
│ MongoBleed Attack Vector │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ ATTACKER VULNERABLE MongoDB │
│ │ │ │
│ │ 1. Send OP_COMPRESSED message │ │
│ │ uncompressedSize: 8192 (LIE) │ │
│ │ actual data: ~100 bytes │ │
│ │────────────────────────────────────> │
│ │ │ │
│ │ 2. Allocate 8192-byte buffer │
│ │ 3. Decompress ~100 bytes │
│ │ 4. BUG: Return buffer.length() = 8192 │
│ │ 5. BSON parser reads uninitialized memory │
│ │ │ │
│ │ 6. Error response with leaked │ │
│ │ memory as "field names" │ │
│ │<──────────────────────────────────── │
│ │ │ │
│ 🔓 LEAKED DATA: │ │
│ - API keys, passwords, tokens │
│ - MongoDB internal state │
│ - WiredTiger storage configs │
│ - System /proc information │
│ - Client connection data │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
| Дата | Событие |
|---|---|
| 15 дек 2025 | Уязвимость выявлена; внутренний тикет SERVER-115508 |
| 19 дек 2025 | Выпущено исправление, раскрыта CVE-2025-14847 |
| 24 дек 2025 | Парк MongoDB Atlas обновлён |
| 26 дек 2025 | Опубликован публичный PoC «mongobleed» |
| 28 дек 2025 | Эксплуатация наблюдается в дикой природе |
🔬 См. технический анализ → — подробный разбор анатомии уязвимости, конструирование эксплойта и методы обнаружения.
mongobleed-exploit-CVE-2025-14847/
├── exploit/ # 🔴 Exploit Lab
│ ├── docker-compose.yml # Vulnerable + Patched MongoDB instances
│ ├── mongobleed.py # Memory leak exploit PoC
│ ├── init/init-mongo.js # Sensitive test data
│ ├── test-exploit.sh # Lab test script
│ └── README.md # Lab documentation
│
├── scanner/ # 🌐 Network Scanner
│ ├── mongobleed_scanner.py # IP/domain vulnerability scanner
│ ├── sample-targets.txt # Sample targets file
│ └── README.md # Scanner documentation
│
├── code-scan/ # 📂 Code Scanner
│ ├── main.py # CLI entry point
│ ├── scanners/ # Docker, Python, Infra scanners
│ ├── models/ # Finding, Vulnerability models
│ ├── integrations/ # Phoenix Security upload
│ └── README.md # Code scanner documentation
│
└── original-exploit/ # 📚 Original PoC reference