CVE-2026-32241
High · 7.5CVSS
7.5
EPSS
2.4%
Published
Mar 27, 2026
CISA due date
—
Cloudanix analysis
A person who can change certain Kubernetes node settings could make vulnerable Flannel networking components run attacker commands as an administrator on affected servers.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- High
- Impact
- Remote Code Execution
- Component
- Container Runtime
- Class
- Command Injection
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
CVE-2026-32241 is a command injection vulnerability in Flannel versions prior to 0.28.2 when the experimental Extension backend is enabled. An attacker with Kubernetes permissions to modify Node annotations can place attacker-controlled content in the `flannel.alpha.coreos.com/backend-data` annotation. Flannel passes this data through the Extension backend `SubnetAddCommand` or `SubnetRemoveCommand` path into a shell command without sufficient validation, allowing arbitrary commands to execute with root-level privileges on affected Flannel nodes. Standard Flannel backends such as `vxlan` and `wireguard` are not affected.
Why it matters to the business
A compromised low-privilege Kubernetes identity with permission to edit Node annotations could be escalated into root-level code execution across nodes running the vulnerable Flannel Extension backend. This can lead to cluster-wide service disruption, theft of workloads or secrets accessible from nodes, deployment of persistence or cryptominers, and potential lateral movement into connected infrastructure. The issue is not currently listed in CISA KEV, has no known mature public exploit reported in the supplied data, and has a low EPSS score with a flat 30-day trend, but the impact is severe for clusters using the experimental Extension backend.
How an attack unfolds
An attacker first obtains Kubernetes credentials or compromises a workload, service account, or user with permission to update or patch Node objects. The attacker identifies that Flannel is deployed and configured to use the experimental Extension backend. They then modify a Kubernetes Node annotation, specifically `flannel.alpha.coreos.com/backend-data`, so that data consumed by Flannel includes command content that reaches the Extension backend command execution path. When Flannel processes subnet add or remove events, the vulnerable `SubnetAddCommand` or `SubnetRemoveCommand` handling unmarshals the annotation content and passes it into a shell without adequate validation. The injected command executes as root in the Flannel node context, allowing the attacker to run arbitrary commands on affected nodes and potentially repeat the action across the cluster.
How to fix it
Upgrade Flannel to version 0.28.2 or later. If immediate upgrade is not possible, stop using the experimental Extension backend and reconfigure Flannel to use an unaffected backend such as `vxlan` or `wireguard`. Remove or tightly restrict any Kubernetes RBAC permissions that allow users, service accounts, controllers, or workloads to update or patch Node objects or Node annotations. Review admission control policies to block unauthorized changes to `flannel.alpha.coreos.com/backend-data`. Restart or roll out Flannel components after upgrading or changing backend configuration to ensure all nodes are running the fixed or unaffected configuration.
How to confirm the fix worked
Confirm the running Flannel version on every node is 0.28.2 or later, or confirm the cluster is not using the Extension backend. Inspect Flannel ConfigMaps, manifests, DaemonSets, and container arguments for backend configuration and ensure `extension` is not in use unless Flannel has been upgraded. Enumerate Node annotations and verify that `flannel.alpha.coreos.com/backend-data` is absent or contains only expected benign configuration. Review Kubernetes RBAC to ensure only highly trusted control-plane identities can patch or update Node resources. Test admission controls by attempting to modify the annotation from a non-administrative identity and confirming the request is denied. After remediation, verify Flannel pods have been restarted and are running the intended image version across all nodes.
Typical attack path
- Obtain Kubernetes credentials or compromise an identity with permission to patch or update Node objects.
- Confirm Flannel is deployed and using the experimental Extension backend rather than unaffected backends such as vxlan or wireguard.
- Modify the `flannel.alpha.coreos.com/backend-data` Node annotation with attacker-controlled content.
- Trigger or wait for Flannel subnet add/remove processing to consume the modified annotation.
- Achieve root-level command execution through the vulnerable Extension backend command path on affected Flannel nodes.
- Use node-level execution to collect secrets, disrupt networking, deploy persistence, or move laterally within the cluster.
How to detect it
To determine whether exploitation already occurred, review Kubernetes API audit logs for `patch` or `update` operations against Node resources, especially changes to the `flannel.alpha.coreos.com/backend-data` annotation. Pay close attention to non-administrative users, service accounts, CI/CD identities, or workload identities modifying Node annotations. Examine Flannel pod logs and node system logs around the same timestamps for subnet add/remove activity, Extension backend execution, shell invocation errors, or unexpected command output. On nodes, use EDR, auditd, eBPF telemetry, or container runtime logs to identify shell processes or unusual utilities spawned by the Flannel process or container. Investigate signs of post-exploitation such as new privileged containers, modified host files, unexpected cron/systemd entries, dropped binaries, cryptomining processes, outbound connections to unfamiliar infrastructure, or Kubernetes secret access following the annotation change. Because the payload is attacker-controlled, there is no single universal command IOC; the strongest detection pivots are suspicious writes to the Flannel backend-data annotation and unexpected process execution from Flannel.
- flannel.alpha.coreos.com/backend-data
- SubnetAddCommand
- SubnetRemoveCommand
- flanneld
- verb=patch objectRef.resource=nodes
- verb=update objectRef.resource=nodes
- patch nodes
- update nodes
- /api/v1/nodes/
- backend-data
- extension
- /bin/sh
- /bin/bash
What your security team should do
- Prioritize clusters that run Flannel with the experimental Extension backend; these are the affected deployments.
- Upgrade Flannel to 0.28.2 or later, or migrate immediately to an unaffected backend such as vxlan or wireguard.
- Audit Kubernetes RBAC for any identity with `update` or `patch` permissions on `nodes` and remove unnecessary access.
- Add an admission policy to block unauthorized writes to `flannel.alpha.coreos.com/backend-data`.
- Search Kubernetes audit logs for recent Node annotation changes involving `flannel.alpha.coreos.com/backend-data`.
- Investigate affected nodes for unexpected child processes spawned from Flannel, suspicious shell execution, persistence artifacts, or unexplained network connections.
- If suspicious annotation changes are found, treat affected nodes as potentially compromised and rotate Kubernetes credentials and secrets that may have been exposed from those nodes.
The record
Flannel is a network fabric for containers, designed for Kubernetes. The Flannel project includes an experimental Extension backend that allows users to easily prototype new backend types. In versions of Flannel prior to 0.28.2, this Extension backend is vulnerable to a command injection that allows an attacker who can set Kubernetes Node annotations to achieve root-level arbitrary command execution on every flannel node in the cluster. The Extension backend's SubnetAddCommand and SubnetRemoveCommand receive attacker-controlled data via stdin (from the `flannel.alpha.coreos.com/backend-data` Node annotation). The content of this annotation is unmarshalled and piped directly to a shell command without checks. Kubernetes clusters using Flannel with the Extension backend are affected by this vulnerability. Other backends such as vxlan and wireguard are unaffected. The vulnerability is fixed in version v0.28.2. As a workaround, use Flannel with another backend such as vxlan or wireguard.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Chainguard | k3s | 0 | 1.35.2.1-r5 |
| Chainguard | k3s-1.32 | 0 | 1.32.13.1-r8 |
| Chainguard | k3s-static | 0 | 1.35.2.1-r5 |
| Chainguard | k3s-static-1.32 | 0 | 1.32.13.1-r8 |
| Wolfi | k3s | 0 | 1.35.2.1-r5 |
| Wolfi | k3s-1.32 | 0 | 1.32.13.1-r8 |
| Wolfi | k3s-static | 0 | 1.35.2.1-r5 |
| Wolfi | k3s-static-1.32 | 0 | 1.32.13.1-r8 |
| openSUSE:Leap 15.6 | govulncheck-vulndb | 0 | 0.0.20260402T184258-150000.1.158.1 |
Related vulnerabilities
- CVE-2026-32285 The Delete function fails to properly validate offsets when processing malformed JSON… Also affects k3s
- CVE-2026-33249 NATS-Server is a High-Performance server for NATS.io, a cloud and edge native messaging… Also affects k3s
- CVE-2026-33248 NATS-Server is a High-Performance server for NATS.io, a cloud and edge native messaging… Also affects k3s
- CVE-2026-33222 NATS-Server is a High-Performance server for NATS.io, a cloud and edge native messaging… Also affects k3s
- CVE-2026-33223 NATS-Server is a High-Performance server for NATS.io, a cloud and edge native messaging… Also affects k3s
- CVE-2026-33246 NATS-Server is a High-Performance server for NATS.io, a cloud and edge native messaging… Also affects k3s
- CVE-2026-33247 NATS-Server is a High-Performance server for NATS.io, a cloud and edge native messaging… Also affects k3s
- CVE-2026-33218 NATS-Server is a High-Performance server for NATS.io, a cloud and edge native messaging… Also affects k3s