事件经过
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值。控制一个代理的经身份验证的攻击者可以注入伪造的agent_id来冒充另一个代理,以该代理身份执行作业。
受影响系统
Woodpecker CI 3.0.0–3.14.0
缓解措施
更新到Woodpecker CI v3.14.1或更高版本;强制要求请求中的agent_id与JWT验证的身份匹配;如果不需要,禁用用户代理注册。