何が起きたか
Woodpecker CI 3.0.0–3.14.0はgRPCリクエスト内のJWTトークンを検証しますが、リクエストメタデータのagent_idがJWTから検証されたアイデンティティと一致することを強制しません。攻撃者は任意のagent_idを提供でき、サーバーはそれを信頼します。
なぜ重要か
AI/MLワークロードの場合、エージェントはモデル訓練データ、GPU、および認証情報へのアクセス権を持つことが多いです。エージェント偽装により、攻撃者は異なるエージェントの権限で悪意あるジョブを実行でき、データを盗んだり他のインフラストラクチャに横展開したりする可能性があります。
攻撃経路
Woodpecker CI のgRPCレイヤーはJWTトークンを正しく検証しますが、その後、検証されたエージェントアイデンティティをgRPCメタデータのクライアント提供のagent_id値に置き換えます。1つのエージェントを制御する認証済み攻撃者は、偽造されたagent_idを注入して別のエージェントを偽装し、そのエージェントとしてジョブを実行できます。
影響を受けるシステム
Woodpecker CI 3.0.0–3.14.0
緩和策
Woodpecker CI v3.14.1以降に更新してください。リクエスト内のagent_idがJWT検証されたアイデンティティと一致することを強制してください。不要な場合はユーザーエージェント登録を無効にしてください。