
概念実証コード。MS-Agent Shell ツールのコマンドインジェクション脆弱性を実証し、セキュリティチェックを Python でバイパスして任意のコマンド実行とリバースシェルを可能にします。
MS-Agent フレームワーク バージョン 1.5.2 の Shell ツールコンポーネントにおいて、重大なコマンドインジェクションの脆弱性(CVE-2026–2256、CVSS X.X)が特定されました。この脆弱性は、シェル実行コンテキストに直接渡されるユーザーの影響を受ける入力のサニタイズが不適切であることに起因し、意図しないコマンド評価を可能にします。 攻撃者は、直接的なシェルアクセスや明示的なオペレーターの誤用を必要とせずに、プロンプト、ドキュメント、ログ、調査入力などのエージェントが消費するデータソースに細工したコンテンツを注入することで、この欠陥を悪用できます。その結果、エージェントの通常の実行フローの中で、ホストシステム上の MS-Agent プロセスの権限で任意のコマンドが実行され、ホスト全体の侵害につながる可能性があります。
Shell ツールは、エージェントがホスト上でオペレーティングシステムのコマンドを実行できるようにする MS-Agent の内部コンポーネントです。これは、コマンド実行を基盤となる OS に委任することで、ファイル管理、ディレクトリトラバーサル、自動化タスクなどのエージェントワークフローをサポートすることを目的としています。
この簡略化された PoC は、ms-agent の Shell ツールにおける check_safe() 関数が Python を使用したリバースシェルの確立のためにバイパスされる方法を示しています。
nc(netcat)PoC を実行して、コマンドがセキュリティチェックをバイパスすることを確認します。 期待される出力: ✓ バイパス成功 - コマンドはすべてのセキュリティチェックを通過します
新しいターミナルウィンドウを開き、以下を実行します:
nc -l 1111
これにより、ポート 1111 でリスナーが起動します。このターミナルは開いたまま待機状態にしておきます。
元のターミナルで、以下を実行します:
./reverse_shell_poc.py --execute
プロンプトが表示されたら、yes と入力して Enter キーを押します。
netcat リスナーがあるターミナル(ステップ 2)に切り替えます。シェルプロンプトが表示されているはずです!
次のようなコマンドを試してください:
whoami - ユーザー名を確認pwd - 現在のディレクトリを確認ls - ファイルを一覧表示exit - 接続を閉じるpython3 を使用して任意のコードを実行python3 はブロックされたコマンドリストに含まれていませんcheck_safe() 関数は次のようなコマンドをブロックします:
sudo、rm -rf /、chmod、curl | bash などしかし、以下はブロックしません:
python3(任意のコード実行)nc(netcat - ネットワーク接続)perl、ruby、node(その他のインタープリター)これは重大な脆弱性を示しています:
テスト後、テストディレクトリを削除できます:
rm -rf /tmp/test_output
これはローカルホスト限定のデモンストレーションです(127.0.0.1 に接続)。この PoC は、悪用リスクを低減するために意図的にリモート接続を回避しています。