Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-14847 — MongoDB 메모리 누수 취약점 (CVE-2025-14847) 탐지 도구 | Kitploit
도구/GitHubGitHub/onewinner/cve-2025-14847
Vulnerability ScannersMemory ForensicsExploitationInformation GatheringPenetration TestingDatabase Security
GitHubonewinner/cve-2025-14847

CVE-2025-14847

MongoDB 메모리 누수 취약점 (CVE-2025-14847) 탐지 도구

저장소 보기
1427개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

MongoDB CVE-2025-14847 취약점 탐지 도구

MongoDB 메모리 누수 취약점 (CVE-2025-14847) 탐지 도구


⚠️ 중요 알림: 이 도구는 승인된 보안 테스트 및 취약점 평가에만 사용하십시오. 승인되지 않은 사용은 법률 위반이 될 수 있습니다.


📋 목차

  • 취약점 설명
  • 기능 특징
  • 설치
  • 사용 방법
  • 테스트 환경 구축
  • 출력 예시
  • 탐지 원리
  • 수정 권장 사항
  • 면책 조항

🔍 취약점 설명

CVE-2025-14847은 MongoDB Zlib 압축 프로토콜 처리 과정에서 발생하는 심각한 메모리 누수 취약점입니다. 공격자는 악의적으로 구성된 압축 데이터 패킷을 전송하여 MongoDB가 초기화되지 않은 힙 메모리 데이터를 반환하도록 만들 수 있으며, 여기에는 민감한 정보가 포함될 수 있습니다.

영향받는 버전

버전 범위상태
8.2.0 - 8.2.2⚠️ 영향받음
8.0.0 - 8.0.16⚠️ 영향받음
7.0.0 - 7.0.27⚠️ 영향받음
6.0.0 - 6.0.26⚠️ 영향받음
5.0.0 - 5.0.31⚠️ 영향받음
4.4.0 - 4.4.29⚠️ 영향받음
4.2.x 모든 버전⚠️ 영향받음
4.0.x 모든 버전⚠️ 영향받음
3.6.x 모든 버전⚠️ 영향받음

취약점 위험성

  • 🔴 심각도: CVSS 8.7 (고위험)
  • 💾 힙 메모리의 민감한 데이터 유출
  • 🔑 비밀번호, 세션 토큰, 암호화 키 등이 포함될 수 있음
  • 🚫 인증 없이 악용 가능
  • 🌐 원격으로 악용 가능

✨ 기능 특징

  • ✅ 지능형 탐지 - MongoDB 버전을 자동으로 식별하고 영향 여부 판단
  • ✅ 이중 검증 - 버전 탐지 → Zlib 지원 탐지 → 메모리 누수 추출
  • ✅ 단일 대상 스캔 - 단일 MongoDB 인스턴스를 빠르게 탐지
  • ✅ 일괄 스캔 - 파일에서 대상 목록을 읽어 일괄 탐지
  • ✅ 동시 스캔 - 멀티스레드 동시 실행을 지원하여 스캔 효율 향상
  • ✅ 실시간 출력 - 유출된 메모리 데이터를 실시간으로 표시
  • ✅ 결과 내보내기 - 취약한 대상을 자동으로 파일에 저장
  • ✅ 간결한 출력 - 통일된 출력 형식으로 명확하게 표시

🚀 설치

방법 1: 소스 코드에서 컴파일

root@kitploit:~
# 克隆仓库
git clone https://github.com/onewinner/CVE-2025-14847.git
cd CVE-2025-14847

# 安装依赖
go mod download

# 编译
go build -o mongodb-scanner main.go

# 运行
./mongodb-scanner -t 127.0.0.1:27017

방법 2: 직접 실행

root@kitploit:~
go run main.go -t 127.0.0.1:27017

방법 3: 사전 컴파일 버전 다운로드

시스템에 적합한 사전 컴파일 버전은 Releases 페이지에서 다운로드하십시오.

📖 사용 방법

기본 사용법

root@kitploit:~
# 扫描单个目标
./mongodb-scanner -t 127.0.0.1:27017

# 从文件批量扫描
./mongodb-scanner -f targets.txt

# 批量扫描(20线程)
./mongodb-scanner -f targets.txt -c 20

# 扫描并保存存在漏洞的目标
./mongodb-scanner -f targets.txt -o vulnerable.txt

# 自定义偏移范围(更快速或更深度扫描)
./mongodb-scanner -t 127.0.0.1:27017 --min-offset 20 --max-offset 1000

명령줄 인자

대상 파일 형식

targets.txt 파일을 생성합니다:

root@kitploit:~
# MongoDB 目标列表
127.0.0.1:27017
192.168.1.100:27017
mongodb.example.com:27017

# 如果不指定端口,默认使用 27017
192.168.1.101

🐳 테스트 환경 구축

이 도구를 안전하게 테스트하려면 Docker를 사용하여 로컬 테스트 환경을 구축하는 것이 좋습니다.

취약한 MongoDB 빠르게 시작

root@kitploit:~
# 启动 MongoDB 6.0.14 (受漏洞影响的版本) 并开启 Zlib 压缩
docker run -d \
  --name mongodb-vulnerable \
  -p 27017:27017 \
  mongo:6.0.14 \
  --networkMessageCompressors snappy,zlib

# 查看容器状态
docker ps

# 测试漏洞
./mongodb-scanner -t 127.0.0.1:27017

Docker Compose 사용

docker-compose.yml 파일을 생성합니다:

root@kitploit:~
version: '3.8'

services:
  # 受漏洞影响的版本(开启 Zlib)
  mongodb-vulnerable:
    image: mongo:6.0.14
    container_name: mongodb-vulnerable
    ports:
      - "27017:27017"
    command: mongod --networkMessageCompressors snappy,zlib

  # 已修复的版本(用于对比测试)
  mongodb-patched:
    image: mongo:6.0.27
    container_name: mongodb-patched
    ports:
      - "27018:27017"
    command: mongod --networkMessageCompressors snappy,zlib

volumes:
  mongodb-data:
  mongodb-patched-data:

테스트 환경 시작:

root@kitploit:~
# 启动所有容器
docker-compose up -d

# 测试受漏洞影响的版本
./mongodb-scanner -t 127.0.0.1:27017

# 测试已修复的版本
./mongodb-scanner -t 127.0.0.1:27018

# 停止并清理
docker-compose down -v

테스트 환경 정리

root@kitploit:~
# 停止并删除容器
docker stop mongodb-vulnerable && docker rm mongodb-vulnerable

# 清理数据卷
docker volume prune -f

📊 출력 예시

출력 형식 설명

도구는 통일된 접두어를 사용하여 출력 정보를 표시합니다:

  • [*] - 정보 출력 (대상, 버전, 구성 등)
  • [+] - 성공/취약점 존재/데이터 추출됨
  • [-] - 실패/안전/취약점 없음
  • [!] - 경고/중요 알림

단일 대상 스캔 - 취약점 존재

root@kitploit:~
╔══════════════════════════════════════════════════════════════╗
║  MongoDB CVE-2025-14847 漏洞检测工具                         ║
╚══════════════════════════════════════════════════════════════╝
⚠️  仅用于授权安全测试 | 未经授权测试可能违法

[*] 目标: 1 | 线程: 10 | 超时: 2s | 偏移: 20-1000
[*] 开始扫描...

[*] 目标: 127.0.0.1:27017
[*] 版本: 6.0.14
[+] 漏洞版本: 是
[+] Zlib压缩: 已开启
[!] 漏洞可利用,开始提取内存...
[+] 偏移=229 长度=250: :00\"},\"s\":\"I\",  \"c\":\"NETWORK\",  \"id\":22944,   \"ctx\":\"conn102932\",

[+] 127.0.0.1:27017 - 漏洞可利用 (v6.0.14) - 3468ms
[+] 成功提取 1 项内存数据:
    [1] :00\"},\"s\":\"I\",  \"c\":\"NETWORK\",  \"id\":22944,   \"ctx\":\"conn102932\",\"msg\":\"Connection ended\",\"attr\":{\"remote\":\"172.17.0.1:44936\"...

======================================================================
[*] 扫描完成 | 总数: 1 | 可利用: 1 | 安全: 0 | 耗时: 3.4s
======================================================================

단일 대상 스캔 - 버전 안전

root@kitploit:~
[*] 目标: 127.0.0.1:27018
[*] 版本: 6.0.27
[-] 漏洞版本: 否

[-] 127.0.0.1:27018 - 版本安全 (v6.0.27) - 156ms

======================================================================
[*] 扫描完成 | 总数: 1 | 可利用: 0 | 安全: 1 | 耗时: 0.2s
======================================================================

단일 대상 스캔 - Zlib 미활성

root@kitploit:~
[*] 目标: 127.0.0.1:27017
[*] 版本: 6.0.14
[+] 漏洞版本: 是
[-] Zlib压缩: 未开启

[-] 127.0.0.1:27017 - 未开启Zlib (v6.0.14) - 234ms

======================================================================
[*] 扫描完成 | 总数: 1 | 可利用: 0 | 安全: 1 | 耗时: 0.3s
======================================================================

일괄 스캔

root@kitploit:~
[*] 目标: 5 | 线程: 10 | 超时: 2s | 偏移: 20-8192
[*] 开始扫描...

[+] 192.168.1.10:27017 - 漏洞可利用 (v6.0.14) - 3521ms
[+] 成功提取 2 项内存数据:
    [1] Connection ended...
    [2] network statistics...

[-] 192.168.1.11:27017 - 版本安全 (v6.0.27) - 145ms
[-] 192.168.1.12:27017 - 未开启Zlib (v6.0.14) - 198ms
[+] 192.168.1.13:27017 - 漏洞可利用 (v7.0.15) - 2987ms
[!] 192.168.1.14:27017 - 漏洞可利用但未提取到数据 (v6.0.20) - 4123ms

======================================================================
[*] 扫描完成 | 总数: 5 | 可利用: 3 | 安全: 2 | 耗时: 5.2s
======================================================================

[+] 可利用的目标已保存到: vulnerable.txt

🔬 탐지 원리

이 도구는 3단계 탐지 메커니즘을 사용합니다:

1️⃣ 버전 탐지

  • MongoDB 인스턴스에 연결
  • 버전 정보 확인 (buildInfo 명령)
  • 버전이 취약점 영향 범위에 포함되는지 판단

2️⃣ Zlib 압축 지원 탐지

  • Zlib 압축 테스트 패킷 전송
  • 서버가 압축 응답을 반환하는지 확인
  • Zlib 압축 기능이 활성화되었는지 확인

3️⃣ 메모리 누수 추출

  • 악의적으로 구성된 압축 데이터 패킷 전송
    • 압축 해제 후 크기가 실제 크기보다 훨씬 크다고 주장
    • 서버가 초기화되지 않은 힙 메모리를 읽도록 유발
  • 더 많은 데이터를 추출하기 위해 여러 오프셋을 스캔
  • 서버 응답의 압축을 해제하고 유출된 필드 이름을 추출
  • 발견된 메모리 데이터를 실시간으로 표시

판정 로직

조건결과
취약 버전 + Zlib 활성 + 데이터 추출됨✅ 취약점 악용 가능 - 유출 데이터 표시
취약 버전 + Zlib 활성 + 데이터 미추출⚠️ 취약점 악용 가능하지만 데이터 미추출
취약 버전 + Zlib 비활성❌ Zlib 미활성 - 악용 불가
취약하지 않은 버전✅ 버전 안전

🛠️ 수정 권장 사항

긴급 수정 방안

다음 수정 버전 중 하나로 즉시 업그레이드하십시오:

  • MongoDB Server 8.2.3
  • MongoDB Server 8.0.17
  • MongoDB Server 7.0.28
  • MongoDB Server 6.0.27
  • MongoDB Server 5.0.32
  • MongoDB Server 4.4.30

임시 완화 조치

단기간에 업그레이드할 수 없는 경우 다음 임시 조치를 적용할 수 있습니다:

1. Zlib 압축 비활성화

mongod.conf 또는 mongos.conf에 다음과 같이 구성합니다:

root@kitploit:~
net:
  compression:
    compressors: []

또는 시작 인자에서 zlib를 명시적으로 제외합니다:

root@kitploit:~
mongod --networkMessageCompressors snappy,zstd

2. 다른 압축 알고리즘으로 전환

zlib 대신 snappy 또는 zstd 사용을 권장합니다:

root@kitploit:~
net:
  compression:
    compressors: snappy,zstd

3. 네트워크 접근 제어

  • MongoDB 포트를 신뢰할 수 있는 IP에만 개방
  • 방화벽 규칙 또는 bindIp 구성을 사용
  • TLS/SSL 암호화 전송을 활성화

4. 접근 제어 활성화

  • 인증 메커니즘 활성화 (--auth 인자)
  • 강력한 암호 정책 사용
  • 최소 권한 원칙 적용

5. 모니터링 및 감사

  • 비정상적인 연결 및 메모리 접근 패턴 모니터링
  • 감사 로그 기록 활성화
  • 보안 로그를 정기적으로 점검

⚠️ 중요 알림: 임시 완화 조치는 위험을 줄일 수 있을 뿐 근본적인 해결책이 아닙니다. 가능한 한 빨리 수정된 버전으로 업그레이드할 것을 강력히 권장합니다.

⚠️ 면책 조항

중요 알림:

  • ✅ 이 도구는 승인된 보안 테스트 및 취약점 평가에만 사용하십시오
  • ✅ 이 도구를 사용하기 전에 대상 시스템을 테스트할 권한이 있는지 확인하십시오
  • ❌ 승인되지 않은 스캔은 법률 및 규정을 위반할 수 있습니다
  • ❌ 저자는 어떠한 오용 행위에 대해서도 책임을 지지 않습니다

이 도구를 사용하면 다음 사항에 동의하는 것으로 간주됩니다:

  1. 명시적으로 승인된 시스템에서만 사용
  2. 해당 지역의 법률 및 규정 준수
  3. 이 도구 사용으로 인해 발생하는 모든 결과에 대한 책임

📄 라이선스

이 프로젝트는 MIT License 오픈소스 라이선스를 사용합니다.

🤝 기여

Issue와 Pull Request를 환영합니다!

기여 가이드

  1. 이 저장소를 Fork 하세요
  2. 기능 브랜치를 생성하세요 (git checkout -b feature/AmazingFeature)
  3. 변경 사항을 커밋하세요 (git commit -m 'Add some AmazingFeature')
  4. 브랜치에 푸시하세요 (git push origin feature/AmazingFeature)
  5. Pull Request를 여세요

📚 참고 자료

  • CVE-2025-14847 상세 정보
  • MongoDB 보안 공지
  • MongoDB 업그레이드 가이드
  • MongoDB 압축 구성

👨‍💻 저자

onewinner - @onewinner

프로젝트 주소: https://github.com/onewinner/CVE-2025-14847

📝 변경 로그

v1.0.0 (2025-12-26)

  • 🎉 초기 버전 출시
  • ✅ 단일 대상 및 일괄 스캔 지원
  • ✅ 멀티스레드 동시 스캔 지원
  • ✅ 자동 버전 탐지 및 위험 평가
  • ✅ 지능형 메모리 누수 탐지
  • ✅ 상세한 수정 권장 사항

⭐ 이 프로젝트가 도움이 되셨다면 Star를 눌러주세요!

Made with ❤️ by Security Researchers

도구 다운로드
인자설명기본값
-t <target>단일 대상 (예: 127.0.0.1:27017)-
-f <file>대상 파일 (줄마다 하나의 대상)-
-c <num>동시 스레드 수10
-timeout <time>연결 시간 초과2s
-o <file>출력 파일 (취약한 대상 저장)-
--min-offset <num>최소 문서 길이 오프셋20
--max-offset <num>최대 문서 길이 오프셋8192