관리 메뉴

Information Security

MongoBleed (CVE-2025-14847) 본문

CVE 취약점

MongoBleed (CVE-2025-14847)

HackingPractice 2026. 1. 6. 14:16

개요

 

CVE-2025-14847, 일명 MongoBleedMongoDB Server에서 발견된 치명적인 정보 노출 취약점으로, 외부 공격자가 인증 절차를 거치지 않고도 원격에서 서버 메모리의 일부를 유출할 수 있다는 점에서 매우 높은 위험도를 가집니다.

 

이 취약점은 MongoDB가 클라이언트와 통신할 때 사용하는 네트워크 메시지 압축 기능(zlib)의 처리 과정에서 발생합니다. MongoDB는 네트워크 성능을 향상시키기 위해 압축된 메시지를 수신하고 이를 해제(decompression)하는데, 이 과정에서 특정 조건 하에 메모리 초기화가 제대로 이루어지지 않는 결함이 존재합니다. 공격자는 이러한 결함을 악용하여 의도적으로 조작된 압축 요청을 서버로 전송할 수 있습니다.

  * zlib 압축 통신 과정에서 헤더 길이 값 불일치를 정상적으로 검증·처리하지 못해, 인증 없이 미초기화된 힙 메모리 일부가 응답으로 노출될 수 있습니다.

 

그 결과, 정상적으로는 외부에 노출되어서는 안 되는 초기화되지 않은 서버 메모리 영역의 내용이 응답 데이터에 포함되어 유출될 수 있습니다. 이 메모리 영역에는 MongoDB 서버가 처리 중이던 민감한 내부 정보가 잔존해 있을 수 있으며, 구체적으로는 데이터베이스 접근 자격 증명, 내부 설정 값, 세션 정보, 암호화 키, 기타 보안 관련 데이터 등이 포함될 가능성이 있습니다.

 

특히 이 취약점의 심각성은 인증이 전혀 필요하지 않다는 점에 있습니다. 즉, MongoDB 서버가 인터넷에 노출되어 있거나 방화벽·접근 제어 설정이 미흡한 경우, 익명의 공격자도 손쉽게 공격을 시도할 수 있으며, 내부 시스템 정보가 반복적으로 유출될 위험이 존재합니다. 이는 단순 정보 노출에 그치지 않고, 추가적인 침해 공격(권한 상승, 데이터 탈취, 내부망 이동 공격 등)으로 이어질 수 있는 발판이 될 수 있습니다.

 

취약점 영향 버전 패치 버전
8.2.0 ~ 8.2.2  8.2.3
8.0.0 ~ 8.0.16 8.0.17
7.0.0 ~ 7.0.27 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

 

해킹 공격

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-compose 파일을 보면 mongobleed 취약한 버전에 해당되는 8.2.2라는 것을 알 수 있습니다.

 

칼리리눅스에 docker를 설치합니다.

 

docker 컨테이너를 실행시킨 후  mongobleed 경로에서 docker-compose 파일에 정의된 컨테이너를 설치합니다.

 

docker ps 명령어로 도커에서 MongoDB 프로세스가 구동되는 것을 알 수 있습니다.

 

docker exec 명령어를 통해 mongoDB가 실행되는 컨테이너로 이동하여 docker-compose 파일에 있는 로그인 정보 및 포트 번호로 접속합니다.

 

MongoDB에 admin 계정으로 로그인하여 databases, tables 확인할 수 있습니다.

 

MongoDB의 암호화 key 값을 확인할 수 있습니다.

 

MongoDB의 API key 값을 확인 할 수 있습니다.

 

mongobleed PoC 코드를 사용하여 힙 메모리 기준으로 메모리 유출 범위를 100 ~ 20000 범위까지 지정하여 공격 수행

 

leaked.bin 파일에 저장된 내용을 확인할 수 있습니다.

 

MongoDB 서버 상태 계열 문자열 및 캐시 / 세션 / 메모리 통계 정보라는 것을 알 수 있습니다.

 

MongoDB가 Docker 컨테이너로 실행 중인 것을 알 수 있고 overlay2 스토리지 경로 및 컨테이너 파일 시스템 구조가 노출되는 것을 알 수 있습니다.

 

MongoDB 실제 데이터 저장 경로가 노출되는 것을 알 수 있습니다.

 

MongoDB 초기 계정 및 DB 생성 스크립트 파일이 노출되는 것을 알 수 있습니다.

 

공격 영상