MongoDB, 인증 없이 메모리 유출 공격에 노출!
MongoDB의 zlib 압축 해제 과정에서 발생하는 메모리 누수 취약점인 MongoBleed가 발견됨
공격자는 조작된 메시지를 통해 미할당 메모리를 유출하여 내부 정보, 시스템 통계 등을 탈취 가능
취약한 버전 사용 시, 즉시 패치하고 무단 접근을 차단하며 비정상적인 스캔을 감시해야 함
MongoBleed 취약점 기술 분석
MongoBleed는 MongoDB의 압축된 메시지 처리 과정에서 발생하는 취약점이다. 구체적으로, 공격자는 조작된 uncompressedSize 값을 가진 메시지를 전송하여, 서버가 해당 크기에 맞춰 메모리를 할당하도록 유도한다. 따라서, zlib는 실제 데이터만 압축 해제하고, 할당된 버퍼의 나머지 부분은 초기화되지 않은 상태로 남겨진다. 결과적으로, BSON 파싱 과정에서 미할당 메모리가 필드 이름으로 해석되어 정보 유출이 발생한다.
공격 및 방어 전략
공격자는 malformed BSON 문서를 사용하여 메모리 영역을 스캔하고, 다양한 오프셋을 탐색하여 정보를 획득한다. 반면, MongoDB는 압축 해제된 길이 검증을 통해 이 취약점을 해결했다. 따라서, 최신 버전으로 업데이트하는 것이 가장 중요하다. 구체적으로, 무단 접근 차단 및 포트 27017에 대한 비정상적인 스캔을 모니터링하여 추가적인 공격 시도를 방지해야 한다.
실제 환경에서의 영향 및 대응
MongoBleed는 웹 애플리케이션, 분석 시스템, NoSQL 스택 등에서 널리 사용되는 MongoDB 인스턴스에 심각한 영향을 미칠 수 있다. 따라서, 클라우드 및 컨테이너 환경에서 특히 주의해야 한다. 구체적으로, Docker Compose를 이용한 취약점 재현이 용이하므로, 개발 환경에서 취약점을 확인하고, 패치 적용 및 보안 설정 강화를 통해 위험을 최소화해야 한다.