何が起きたか
Google ADK TypeScript (@google/adk) 0.4.0から0.6.0未満のFileArtifactServiceは、userIdまたはsessionIdパラメータ内の相対パスまたはパーセントエンコードされたパストラバーサルシーケンス(../、..%2F)をサニタイズしません。ADK APIサーバーがこの非デフォルトのアーティファクトバックエンドで展開されると、リモートの認証なし攻撃者は、アーティファクトディレクトリ構造に一致するファイルを読み取ったり、エージェントツールがsaveArtifactを呼び出す際に、意図されたアーティファクト保存ルート外のファイルに書き込んだりできます。
なぜ重要か
ADKはGoogleの公式エージェント開発キットです。エージェントアーティファクトストアは、エージェントツールが生成ファイル、コード、取得ドキュメントを保存する場所です。ここでのパストラバーサルにより、認証なしの呼び出し元がアーティファクトルート外のサーバーファイルに到達したり、後でエージェントが拾うファイルを配置したりできます — データ開示とエージェントワークフローにおける間接的なコンテンツポイズニングの現実的な経路です。
攻撃経路
ADK APIサーバーのアーティファクトエンドポイントに対する、認証なしの細工されたuserId/sessionIdパストラバーサル。
影響を受けるシステム
@google/adk (Google ADK TypeScript) 0.4.0から0.6.0未満(FileArtifactService(非デフォルト)が有効な場合)
緩和策
@google/adk 0.6.0以降にアップグレード(adk-jsの修正コミット710b4ebe / 8c0eaa16)