何が起きたか
AI Gatewayパススルールーターはパーセントエンコードされたトラバーサルセグメントを拒否しないため、認証済みユーザーが許可リストのプレフィックスから脱出して任意のプロバイダーエンドポイントに到達できます。ゲートウェイは中央管理されたプロバイダーキーで認証するため、リクエストはデプロイメントの共有AI資格情報を代行して消費/クエリします。
なぜ重要か
Coderは、ワークスペースユーザーに対して単一の共有プロバイダーキーを使用してLLMプロバイダーへのアクセスを仲介するAI Gatewayを公開します。ここでのトラバーサルにより、認証済みユーザーが許可されたAIサーフェス外のプロバイダーエンドポイントにアクセスでき、コスト/使用量の悪用、プロバイダー範囲のリソースへのクロステナントアクセス、またはエンタープライズのキーでの意図しないモデル操作のトリガーが発生するリスクがあります。
攻撃経路
認証済みユーザーは、許可リストのプレフィックスの下でパーセントエンコードされたドットセグメント(例: %2e%2e、..%2F)をAI Gatewayパススルールーターに送信します。Coderはそれらを拒否せずに上流に転送するため、リクエストはデプロイメントの中央管理されたプロバイダーAPIキーを使用して意図しないプロバイダーエンドポイントに到達します。
影響を受けるシステム
Coder 2.28.0 < 2.29.22; 2.30.0 < 2.34.13; 2.35.0 < 2.35.10; 2.36.0 < 2.36.8; 2.37.0 < 2.37.5; 2.38.0 < 2.38.1
緩和策
該当するラインのパッチ済みCoderリリースにアップグレードしてください(>=2.29.22、>=2.34.13、>=2.35.10、>=2.36.8、>=2.37.5、または>=2.38.1)。GHSA-373r-678h-hjc6およびPR #30178を参照してください。