문의하기
블로그

몽구스 RCE 취약점 CVE-2024-53900 & CVE-2025-23061: 몽구스 노출의 보안 위협과 대책

최근 OPSWAT는 자사 블로그에서 MongoDB와 Node.js ODM(Object Data Modeling) 라이브러리인 몽구스 (Mongoose)의 취약점 CVE-2024-53900과 CVE-2025-23061의 PoC를 분석했다. 몽구스는 인터넷에 노출되면 무인증 접근,

최근 OPSWAT는 자사 블로그에서 MongoDB와 Node.js ODM(Object Data Modeling) 라이브러리인 몽구스 (Mongoose)의 취약점 CVE-2024-53900과 CVE-2025-23061의 PoC를 분석했다. 몽구스는 인터넷에 노출되면 무인증 접근, 데이터 유출, NoSQL 인젝션 공격, RCE, DDoS 등 심각한 보안 문제가 발생할 수 있고, 실제로 두 취약점 모두 원격 코드 실행(RCE)으로 이어질 수 있는 취약점들로 각각 CVSS v3 기준 9.1과 9.0으로 평가되었다. 이번 글에서는 Criminal IP Asset Search를 활용하여 인터넷에 노출된 몽구스를 탐색하는 방법과 노출 현황을 소개한다. 

몽구스 RCE 취약점 CVE-2024-53900과 CVE-2025-23061의 PoC

몽구스는 MongoDB와 Node.js 애플리케이션 간의 상호작용을 간소화하는 데 사용된다. OPSWAT의 분석에 의하면, 두 취약점은 $where 연산자와 관련이 있다. $where 연산자는 populate() 함수와 함께 사용하면 MongoDB 문서 내 데이터를 검색할 수 있다. 또한, 임의의 JavaScript 코드를 직접 실행할 수 있는 MongoDB의 쿼리 연산자로, 특정 데이터 검색 기준을 정의할 수 있다. 공격자가 $where 연산자를 악용하여 쿼리를 조작하면 MongoDB 서버가 이를 인식하지 못하게 되고, 악성 코드는 애플리케이션 서버에서 로컬로 실행될 수 있다. OPSWAT의 연구원은 MongoDB 서버 오류가 발생하지 않도록 쿼리를 작성하여 Node.js 애플리케이션 서버에서 원격 코드 실행에 성공했다.

먼저 발견된 CVE-2024-53900은 Mongoose 8.8.3 버전에서 $where 연산자가 match 속성 내에서 사용되지 않도록 함으로써 패치되었다. 그러나 $where 연산자가 $or 연산자 내에 중첩될 경우 여전히 populate() 함수로 전달될 수 있음을 발견했고, 이는 새로운 취약점 CVE-2025-23061로 이어졌다. 이 두 번째 취약점은 Mongoose 8.9.5 버전에서 수정되었으며, 사용자들은 두 취약점을 모두 해결하기 위해 몽구스를 최신 버전으로 업데이트해야 한다.

취약한 몽구스 버전

  • CVE-2024-53900: 8.8.3 이전 버전
  • CVE-2025-23061: 8.9.5 이전 버전

인터넷에 노출된 몽구스의 보안 위협

몽구스가 인터넷에 노출되면 위에서 발견된 취약점을 비롯해 무인증 접근, 데이터 유출, NoSQL 인젝션, RCE, DDoS 공격 등 치명적인 보안 위협이 발생할 수 있다.

보안 위협상세 내용
무인증 접근몽구스는 기본적으로 MongoDB와 연결되어 있으며, 보안 설정이 제대로 적용되지 않으면 외부에서 누구나 데이터베이스에 접근할 수 있다.
MongoDB의 경우, 보안 설정이 없으면 인증 없이 접속이 가능하며, 공격자는 find(), update(), delete() 등의 명령어를 통해 데이터를 조작할 수 있다.
데이터 유출몽구스를 통해 운영하는 데이터베이스가 외부에 공개되면, 공격자가 API 엔드포인트를 악용하여 중요한 정보를 유출할 수 있다.
특히, 사용자 정보, 계정 정보, 기밀 데이터 등이 노출될 가능성이 크다.
NoSQL 인젝션 공격몽구스가 인터넷에 노출되면, 공격자는 NoSQL 인젝션을 통해 데이터베이스를 조작할 수 있다.
예를 들어, 공격자가 로그인 API에 { “$gt”: “” } 같은 페이로드를 입력하면 인증을 우회할 수 있다.
원격 코드 실행 및 서버 제어 위험공격자는 몽구스를 통해 서버 내부에서 임의 코드를 실행할 수 있다.
특히 eval(), exec(), 또는 잘못된 쿼리 실행 방식이 포함된 경우, 공격자가 서버를 장악할 가능성이 있다.
DDoS 공격 위험공격자가 무작위로 대량의 요청을 보내면, 몽구스를 사용하는 서버가 과부하 상태가 되어 서비스 장애(Downtime) 가 발생할 수 있다.
몽구스 노출로 인한 보안 위협

이처럼 Mongo DB와 몽구스가 인터넷에 노출되면 심각한 보안 위협이 발생할 수 있으므로, 사용자는 지속적으로 보안 상태를 점검하고 노출 여부를 모니터링해야 한다.

인터넷에 노출된 몽구스 탐색

인터넷에 노출된 몽구스는 Criminal IP의 Asset Search로 간단히 찾을 수 있다.

Criminal IP Search Query: Mongoose product: “mongoose”

Criminal IP Asset Search에서 Mongoose product: "mongoose" 를 검색한 결과
Criminal IP Asset Search에서 Mongoose product: “mongoose” 를 검색한 결과

2025년 3월 13일 기준, 인터넷에 노출된 몽구스는 약 2만7천개 이상이며, CVE의 영향을 받는 취약한 버전도 다수 확인되었다. Asset Search에서 Mongoose product: “mongoose” 를 검색하기만해도, CVE에 영향받는 IP 주소인지, 어떤 버전을 사용하고 있는지 알 수 있다.

더욱이 특정 IP 주소의 IP Report 페이지로 이동하면 해당 IP 주소가 어떤 취약점에 영향을 받는지를 악용 이력과 함께 확인할 수 있고, 오픈포트와 IP 주소의 위치, WHOIS 정보를 포함한  더욱 상세한 내용을 확인할 수 있다.

오래된 버전을 사용중인 몽구스로, 다수의 취약점과 오픈포트가 탐지되었다
오래된 버전을 사용중인 몽구스로, 다수의 취약점과 오픈포트가 탐지되었다

FAQ

Q1. 몽구스가 인터넷에 노출되는 원인은 무엇인가요?

몽구스가 인터넷에 노출되는 원인은 대부분 설정 실수와 보안 미흡 때문이다. 특히 MongoDB의 잘못된 네트워크 설정, 인증 및 권한 미설정, 애플리케이션 코드 내 보안 취약점 그리고 방화벽 설정 미비로 인한 외부 접근을 허용하는 것을 주된 원인으로 꼽을 수 있다.

Q2. 몽구스 노출을 예방하는 방법은 무엇인가요?

MongoDB와 이를 사용하는 몽구스 ODM이 인터넷에 노출되지 않도록 보호하려면 네트워크 설정 강화, 인증 및 권한 설정, 애플리케이션 보안 강화, 방화벽 적용뿐만 아니라 사이버 위협 인텔리전스 검색엔진과 공격 표면 관리 솔루션을 활용한 지속적인 모니터링이 필요하다.

  1. MongoDB 네트워크 접근 제한
  2. 인증 및 접근 제어 활성화
  3. 방화벽 및 보안 그룹 설정
  4. 애플리케이션 코드 보안 강화
  5. NoSQL 인젝션 방지
  6. 사이버 위협 인텔리전스 검색엔진 활용
  7. 공격 표면 관리(ASM) 활용

결론

MongoDB와 몽구스가 인터넷에 노출되지 않도록 보호하려면 최신 패치 적용과 더불어 네트워크 설정, 인증 적용, 방화벽 설정, 애플리케이션 보안 강화가 필수적이다. 또한, 사이버 위협 인텔리전스 검색엔진 Criminal IP와 공격 표면 관리 솔루션 Criminal IP ASM을 활용하여 지속적인 공격 표면 모니터링 및 자동 탐지 기능을 적용하는 것이 중요하다.

MongoDB의 보안 설정이 미흡하면 데이터 유출과 서버 장악 위험이 커지므로, 앞서 소개한 보안 조치를 철저히 적용해야 한다. 

관련하여 오라클 웹로직 서버 취약점 CVE-2020-2883 : 5년간 지속된 서버 장악 위협 글을 참고할 수 있다.


데이터 출처: Criminal IP (https://www.criminalip.io/ko), SC Media (https://www.scworld.com/news/mongoose-odm-critical-rce-flaws-detailed-poc-exploits-revealed), Security Week (https://www.securityweek.com/vulnerabilities-in-mongodb-library-allow-rce-on-node-js-servers/), OPSWAT Blog (https://www.opswat.com/blog/technical-discovery-mongoose-cve-2025-23061-cve-2024-53900)

관련 글 :

https://www.criminalip.io/ko/knowledge-hub/blog/24560