何が起きたか
LLM 駆動アプリケーション構築用のフレームワークである Langroid は、TableChatAgent.pandas_eval() および VectorStore.compute_from_docs() でサンドボックス エスケープ/RCE に対して脆弱です。どちらも eval() の locals を空のディクショナリに設定して LLM 生成コード実行をサンドボックス化しようとしましたが、globals から __builtins__ をスクラブしませんでした。そのため、Python は暗黙的にすべての組み込み関数を注入し、__import__('os').system() のような関数への完全アクセスを許可しました。これらのエージェントは本来的に LLM 生成ツール メッセージを実行するため、エージェント (直接またはRAG を通じた間接) に到達するすべてのプロンプト インジェクションは完全な RCE を達成できます。0.65.2 で修正されました。
なぜ重要か
CVSS 10.0 — これは広く使用されている LLM エージェント フレームワークの完全なサンドボックス エスケープ RCE で、追加の認証を必要とせずにプロンプト インジェクションだけで悪用可能です。TableChatAgent および VectorStore は Langroid のコア機能で一般的に使用されているため、パッチが適用されていない Langroid 上に構築され、LLM 独自の出力がこれらのコード パスに到達できるすべてのアプリケーションは、モデルが読み取るコンテンツ (例: RAG パイプラインの中毒されたドキュメント) によって簡単に侵害されます。
攻撃経路
プロンプト インジェクション (直接またはRAG コンテンツを介した間接) により、LLM は TableChatAgent.pandas_eval() または VectorStore.compute_from_docs() に到達するツール呼び出しペイロードを発行し、不完全な eval() サンドボックス化により任意の Python/OS コマンド実行が可能になります。
影響を受けるシステム
Langroid (pip パッケージ) < 0.65.2
緩和策
Langroid ≥0.65.2 にアップグレードします。