CVE-2026-32241Flannel是专为Kubernetes设计的容器网络插件。在0.28.2版本之前,其实验性的Extension后端存在命令注入漏洞。攻击者如果能够设置Kubernetes节点的注释(annotations),特别是`flannel.alpha.coreos.com/backend-data`字段,便可以利用该漏洞在集群中的每个Flannel节点上以root权限执行任意命令。该漏洞源于Extension后端在处理SubnetAddCommand和SubnetRemoveCommand时,直接将未经验证的反序列化数据通过管道传递给shell命令执行。使用vxlan或wireguard后端的配置不受影响。
该漏洞的核心原理在于Flannel的Extension后端缺乏对输入数据的严格过滤。当Flannel使用Extension后端时,`SubnetAddCommand`和`SubnetRemoveCommand`会从标准输入(stdin)读取数据,这些数据实际上来源于Kubernetes Node对象的`flannel.alpha.coreos.com/backend-data`注解。在受影响版本中,程序将注解内容进行反序列化处理后,直接通过管道符传递给Shell命令执行,而未对特殊字符或命令分隔符进行转义或检查。由于Kubernetes中具备节点更新权限的攻击者(PR:L)可以修改注解,他们可以在`backend-data`中注入恶意的Shell命令(如`;`, `|`, `&&`等)。当Flannel进程处理这些变更时,恶意命令将被宿主机的Shell以root权限执行。这使得攻击者能够完全控制宿主机,进而威胁整个Kubernetes集群的安全。值得注意的是,只有启用了Extension后端的集群才受影响,默认或常用的vxlan和wireguard后端不涉及此问题。