CVE-2026-40886Argo Workflows是Kubernetes上的开源容器原生工作流引擎。在3.6.5至4.0.4版本中,pod informer的`podGCFromPod()`函数存在未检查的数组索引漏洞。当工作流pod携带格式错误的`workflows.argoproj.io/pod-gc-strategy`注解时,会导致控制器范围内的panic。由于panic发生在informer goroutine内部(在控制器的recover()作用域之外),它会崩溃整个控制器进程。受影响的pod在重启后依然存在,导致崩溃循环,从而停止所有工作流处理,直到该pod被手动删除。
该漏洞的核心在于Argo Workflows控制器代码中的`podGCFromPod()`函数处理Pod注解时存在逻辑缺陷。具体而言,当函数解析`workflows.argoproj.io/pod-gc-strategy`注解时,未对输入数据进行充分的校验,导致在特定条件下发生数组越界访问。攻击者只需具备在Kubernetes集群中创建Pod的低权限(PR:L),即可利用此漏洞。利用过程非常简单:攻击者构造一个包含恶意格式注解的Pod。当Argo Workflows的informer组件监听到该Pod的创建或更新事件并尝试处理时,会触发上述逻辑缺陷。由于错误发生在informer的goroutine内部,而该部分代码缺乏有效的异常捕获机制(recover),导致整个控制器进程直接崩溃。由于Kubernetes的Deployment机制会自动重启崩溃的控制器,但恶意的Pod资源未被清理,因此控制器重启后会再次读取该Pod并再次崩溃。这种持续的崩溃循环将导致所有工作流调度服务不可用,形成严重的拒绝服务攻击。