何が起きたか
AstGrepサービスの封じ込めチェックは未解決の字義的パスを使用するため、ルート外を指すリポジトリ内のシンボリックリンクはスコープ内として扱われます。MCP構造ツールはそれに従ってプロジェクトルート外のファイルを読み取りまたは上書きし、意図された承認ゲートをバイパスします。
なぜ重要か
被害者にリポジトリを分析させることができる攻撃者は、コードグラフRAGエージェントが従って資格情報/キー/環境ファイルを読み取るか、兄弟ソースを変更するシンボリックリンクを仕込むことができます。これはエージェント型コード分析ツールにおけるワークスペース脱出プリミティブです。
攻撃経路
AstGrepServiceはproject_rootの下のファイルを列挙し、封じ込めにshould_skip_pathに依存しますが、チェックは未解決の字義的パスで動作します。分析されたリポジトリ内に仕込まれたシンボリックリンクは、スコープ内に見えながら設定されたルート外のファイルを参照できます。structural_searchはその内容を開示し、dry_run=Falseのstructural_replaceはリンクに従い、エージェントループの承認制御なしで書き込み可能なコンテンツを上書きします。
影響を受けるシステム
code-graph-rag < 0.0.589
緩和策
code-graph-rag 0.0.589にアップグレードしてください。アドバイザリ: https://github.com/vitali87/code-graph-rag/security/advisories/GHSA-85gg-2gfq-q95m