Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Tags
more
Archives
Today
Total
관리 메뉴

정뾰안 - 정보보안 블로그

MongoBleed: MongoDB 메모리 유출 취약점 실습 (CVE-2025-14847) 본문

CVE

MongoBleed: MongoDB 메모리 유출 취약점 실습 (CVE-2025-14847)

정뾰안 2026. 1. 27. 21:47

CVE-2025-14847 요약

취약점 개요 MongoDB에서 인증 없이 원격으로 서버 메모리 내용을 유출할 수 있는 취약점
취약점 내용 zlib 압축 처리 과정에서 길이 검증 오류로 인해 초기화되지 않은 메모리가 응답에 포함되어 발생
영향 인증 없이 원격에서 민감 정보 유출
대응 방안 안전한 버전 사용 등
CVSS 8.7
공개일 2025년 12월 19일

 

1. CVE-2025-14847 취약점 설명

MongoDB에서 발생하는 초기화되지 않은 힙 메모리 반환(정보 노출) 취약점이다. MongoDB는 클라이언트–서버 간 통신 효율을 높이기 위해 zlib 기반 압축 기능을 제공하는데, 이 과정에서 서버는 클라이언트로부터 전달받은 압축 데이터의 길이 정보를 신뢰하여 처리한다.

이 취약점은 MongoDB 서버가 압축 해제(zlib decompress) 과정에서 입력 데이터의 실제 길이에 대한 검증을 충분히 수행하지 않아 할당된 버퍼 내의 초기화되지 않은 메모리 영역까지 응답에 포함시켜 반환하는 문제로 발생한다. 공격자는 인증 없이도 조작된 네트워크 패킷을 전송하여 서버 메모리 내용을 유출할 수 있으며 이 과정에서 데이터베이스 자격증명, 인증 토큰, 내부 설정 정보 등 민감한 정보가 노출될 수 있다.

참고로 zlib를 사용하는 Ubuntu rsync 패키지도 이 취약점의 영향을 받는다. (참고 https://ubuntu.com/security/CVE-2025-14847)

 

 

영향 받는 버전 및 해결 버전

제품명 영향 받는 버전 해결 버전
MongoDB
8.2.0 이상 ~ 8.2.3 미만 8.2.3
8.0.0 이상 ~ 8.0.17 미만 8.0.17
7.0.0 이상 ~ 7.0.28 미만 7.0.28
6.0.0 이상 ~ 6.0.27 미만 6.0.27
5.0.0 이상 ~ 5.0.32 미만 5.0.32
4.4.0 이상 ~ 4.4.30 미만 4.4.30
모든 v4.2 버전 해결 버전으로 마이그레이션
(4.4.30)
모든 v4.0 버전 해결 버전으로 마이그레이션
(4.4.30)
모든 v3.6 버전 해결 버전으로 마이그레이션
(4.4.30)

출처: kisa(https://knvd.krcert.or.kr/detailSecNo.do?IDX=6655)


2. 실습

테스트 환경 및 공격 실습은 깃허브에 공개된 데이터를 사용하여 진행한다. 테스트 환경을 세팅하기 위해서는 Docker가 먼저 설치되어 있어야 한다. Docker 설치는 본 블로그의 'Ubuntu에 Docker 설치하기 (VMware)' 게시물을 확인하기 바라며, 본 게시물에서는 Docker 설치 과정은 생략하겠다.

 

Docker 설치

 

Ubuntu에 Docker 설치하기 (VMware)

개요VMware에 Ubuntu를 설치하고 그 안에 Docker를 설치하려고 한다. 추가로, Docker 사용 편의를 위해 설치 마지막에 Portainer까지 설치해서 접속 해볼 예정이다. 사용한 버전은 다음과 같다.구분버전비

yeongiee.tistory.com

 


◇ 환경 구성

◎ Docker를 실행한다.
 
◎ 깃허브에서 MongoBleed 테스트 환경 이미지를 확인하고 URL을 복사한다.

  (https://github.com/joe-desimone/mongobleed)

 

GitHub - joe-desimone/mongobleed

Contribute to joe-desimone/mongobleed development by creating an account on GitHub.

github.com

 

 

◎ 위에서 확인한 Docker 테스트 환경을 다운로드 한다.

  ( git clone https://github.com/joe-desimone/mongobleed.git )

 

 

Docker Compose를 설치한다. ( apt install docker-compose -y )

Docker Compose는 여러 도커 컨테이너를 하나의 파일로 정의하고 동시 실행하게 해주는 도구이다.

 

 

docker-compose.yml 파일을 읽어 컨테이터를 백그라운드에서 실행한다.  ( docker-compose up -d )

 

 

Portainer에 접속해서 확인해보면 테스트 서버가 잘 실행된 것을 알 수 있다.

 

 

 

◇ 공격 실습

◎ 앞서 이용한 깃허브에서 MongoBleed POC를 다운로드한다.   (https://github.com/joe-desimone/mongobleed)

 

 

사용자 PC에서 CMD를 켠 후 해당 POC를 실행한다.

 ( python mongobleed.py --host [테스트 환경 IP] --max-offset 50000 )

 

 

결과 파일 leaked.bin이 생성되었다. 이를 사람이 보기 편한 형태로 가공하기 위해 Ai를 이용하겠다.

 

 

시스템/서버 정보, Docker 컨테이너 정보 등 중요정보 탈취가 가능한 것을 확인할 수 있다.