
CVE-2025-14847 MongoBleed - MongoDB 메모리 누수 취약점 PoC
👨💻 작성자: Furkan KAYAPINAR (@FurkanKAYAPINAR)
⚠️ 교육 목적으로만 사용하세요
MongoDB 서버의 심각한 인증되지 않은 메모리 누수 취약점에 대한 실습 환경 및 익스플로잇 스크립트입니다.
CVE-2025-14847 (MongoBleed) 은 MongoDB 서버의 zlib 압축 처리에서 발생하는 심각한 인증되지 않은 메모리 누수 취약점입니다.
| 속성 | 값 |
|---|---|
| CVE ID | CVE-2025-14847 |
| CVSS 점수 | 8.7 (높음) |
| 공격 벡터 | 네트워크 |
| 인증 | 필요 없음 |
| 공개일 | 2025년 12월 19일 |
이 취약점은 message_compressor_zlib.cpp에 존재합니다. OP_COMPRESSED 메시지를 처리할 때:
uncompressedSize에 따라 버퍼를 할당합니다.유출될 수 있는 데이터:
| 버전 범위 | 패치된 버전 |
|---|---|
| 8.2.0 - 8.2.2 | 8.2.3 |
| 8.0.0 - 8.0.16 | 8.0.17 |
| 7.0.0 - 7.0.26 | 7.0.28 |
| 6.0.0 - 6.0.26 | 6.0.27 |
| 5.0.0 - 5.0.31 | 5.0.32 |
| 4.4.0 - 4.4.29 | 4.4.30 |
| 모든 4.2, 4.0, 3.6 | 지원 종료 - 즉시 업그레이드 |
# 저장소 복제
git clone https://github.com/FurkanKAYAPINAR/CVE-2025-14847-MongoDB.git
cd CVE-2025-14847-MongoDB
# 가상 환경 생성
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
# 의존성 설치
pip install -r requirements.txt
테스트를 위해 취약한 MongoDB 인스턴스를 시작합니다:
cd lab
# 취약한 MongoDB 시작 (zlib 활성화된 6.0.26)
docker-compose up -d
# 실행 중인지 확인
docker-compose ps
# 샘플 데이터 로드 (선택 사항)
./setup.sh load-data
# 실습 환경 중지
docker-compose down
# 단일 대상
python exploit/mongobleed.py -u 127.0.0.1
# 특정 포트 사용
python exploit/mongobleed.py -u 127.0.0.1 -p 27017
# 유출된 데이터를 파일로 저장
python exploit/mongobleed.py -u 127.0.0.1 -o leaked_data.bin
# 더 많은 데이터를 위한 여러 반복
python exploit/mongobleed.py -u 127.0.0.1 -i 20
# 조용한 모드 (출력 줄임)
python exploit/mongobleed.py -u 127.0.0.1 -q
# 16진수 덤프 없이 (텍스트 출력)
python exploit/mongobleed.py -u 127.0.0.1 --text
# 패치된 버전으로 업데이트
# MongoDB 6.x 예시
sudo apt-get update
sudo apt-get install mongodb-org=6.0.27
# zlib 없이 mongod 시작
mongod --networkMessageCompressors snappy,zstd
# 또는 mongod.conf에서
net:
compression:
compressors: snappy,zstd
python remediation/verify_fix.py --target 127.0.0.1 --port 27017
🚨 경고
이 도구는 교육 및 공인된 보안 테스트 목적으로만 제공됩니다.
- 컴퓨터 시스템에 대한 무단 접근은 불법입니다.
- 귀하는 귀하의 행동에 전적인 책임을 집니다.
- 저자는 오용에 대해 어떠한 책임도 지지 않습니다.
이 도구를 사용함으로써 귀하는 대상 시스템을 테스트할 적절한 권한이 있음을 동의하는 것입니다.
기여는 환영합니다! 먼저 CONTRIBUTING.md를 읽어주세요.
이 프로젝트는 MIT 라이선스 하에 제공됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.