CVE-2026-42183Argo Workflows是一个开源的容器原生工作流引擎,用于在Kubernetes上编排并行作业。在4.0.0至4.0.5之前的版本中,当设置SSO_DELEGATE_RBAC_TO_NAMESPACE=true时,server/auth/gatekeeper.go中的rbacAuthorization()函数存在空指针解引用漏洞。如果SSO用户的声明匹配命名空间级别的RBAC规则,但不匹配SSO命名空间规则,将导致服务发生Panic,从而引发拒绝服务。该问题已在4.0.5版本中修复。
该漏洞的根源在于Argo Workflows处理SSO身份验证和RBAC授权时的逻辑缺陷。具体而言,当启用SSO_DELEGATE_RBAC_TO_NAMESPACE选项时,系统会将RBAC权限委托给命名空间处理。在server/auth/gatekeeper.go文件的rbacAuthorization()函数中,代码未能妥善处理特定的边界情况:当SSO用户的声明恰好满足命名空间级别的RBAC规则,但又不满足SSO特定的命名空间规则时,程序会尝试访问一个未初始化(nil)的对象指针。由于缺少空值检查,这导致了运行时Panic。在Go语言中,未捕获的Panic会导致服务线程崩溃,进而导致整个Argo API服务不可用,攻击者可利用此低权限账户中断工作流执行。