何が起きたか
公式A2A(Agent2Agent)Java SDKの1.3.0.Finalより前のバージョンでは、AuthInterceptor.interceptが、リモートのAgentCardのAPIKeySecurityScheme.name()を、資格情報を保持するHTTPヘッダー名として直接使用し、宣言された場所がHEADERであることを確認しません。JdkA2AHttpClientはリダイレクトを追跡する(NORMAL)ため、悪意のあるまたは侵害されたリモートエージェントは、標準のAuthorizationヘッダーが除去された場合でも、クロスオリジンリダイレクトを介して設定済みAPIキーをサードパーティサーバーに転送させることができます。
なぜ重要か
この欠陥により、クライアントが既に通信しているエージェントが、リダイレクトを操作してそのエージェント用に設定されたAPIキーを盗むことができます。CredentialServiceを介して資格情報が提供されるエージェント間展開では、信頼されていない下流エージェントがクライアントの秘密情報を収集し、それを意図されたサービスに対して使用でき、キーが設定されたエージェントに留まるという前提を覆します。
攻撃経路
エージェント制御のAgentCardとクロスオリジンリダイレクトが、資格情報を含むカスタムヘッダーをサードパーティサーバーへ転送する
影響を受けるシステム
a2a-java (A2A Java SDK) < 1.3.0.Final
緩和策
a2a-java 1.3.0.Finalにアップグレードする。セキュリティスキームの場所がHEADERであることを検証し、リダイレクト追跡を制限する