본문 바로가기
보안

MongoDB 취약점 CVE-2025-14847

by 촐초리 2025. 12. 29.
반응형

이 취약점은 MongoDB에서 사용하는 데이터 압축 라이브러리인 zlib의 구현 방식에서 발생한 심각한 보안 결함입니다. 주요 내용은 다음과 같습니다.

1. 취약점 개요

  • 이름: CVE-2025-14847 (별칭: MongoBleed)
  • 위험도: CVSS 점수 8.7 (High)
  • 성격: 인증되지 않은 원격 공격자가 서버 메모리 내의 민감한 데이터를 탈취할 수 있는 정보 유출(Information Leakage) 취약점입니다.

2. 발생 원인 (기술적 배경)

이 문제는 MongoDB 서버의 네트워크 메시지 압축 해제 로직(message_compressor_zlib.cpp)에서 발생합니다.

  • 로직 오류: 서버가 압축된 데이터를 해제할 때, 실제 해제된 데이터의 길이가 아니라 미리 할당된 버퍼의 크기를 반환하는 오류가 있습니다.
  • 메모리 노출: 공격자가 조작된(Malformed) 압축 패킷을 보내면, 서버는 실제 데이터 외에 힙(Heap) 메모리에 남아 있던 이전 데이터들까지 함께 반환하게 됩니다.
  • 이 방식은 과거 세상을 떠들썩하게 했던 '하트블리드(Heartbleed)' 취약점과 원리가 매우 유사하여 'MongoBleed'라는 이름이 붙었습니다.

3. 공격 영향

  • 인증 불필요: 공격자는 아이디나 패스워드 없이도 네트워크 연결만으로 공격이 가능합니다.
  • 데이터 유출: 반복적인 공격을 통해 메모리에 저장된 사용자 정보, 비밀번호 해시, API 키, 데이터베이스 파편 등을 조금씩 긁어모을 수 있습니다.
  • 현황: 전 세계적으로 약 87,000개 이상의 MongoDB 인스턴스가 노출되어 있으며, 현재 실제로 이 취약점을 이용한 공격 시도가 활발히 일어나고 있습니다.

4. 대응 방법

현재 MongoDB 측에서 보안 패치를 배포한 상태입니다. 주변에서 MongoDB를 사용 중이라면 아래 조치를 즉시 취해야 합니다.

  • 최신 버전 업데이트: 아래 버전 또는 그 이상의 최신 버전으로 업데이트하세요.
  • 8.2.3 / 8.0.17 / 7.0.28 / 6.0.27 / 5.0.32 / 4.4.30
  • 임시 방편 (업데이트가 어려운 경우):
  • MongoDB 실행 시 zlib 압축을 비활성화합니다. (--networkMessageCompressors 옵션에서 zlib 제외)
  • 방화벽을 통해 신뢰할 수 없는 IP로부터의 접근을 차단합니다.
  • 인증 전 단계에서 발생하는 비정상적인 연결 로그를 모니터링합니다.

요약하자면, 로그인 없이도 서버 메모리를 훔쳐볼 수 있는 위험한 버그이니, 사용 중인 MongoDB 버전을 꼭 확인해 보시기 바랍니다!

반응형