CVE-2026-13434: KubeVirt Network Annotation Injection Breaks Multi-Tenancy
KubeVirt's network annotation generator fails to validate user-supplied network names before writing them into pod configuration. A tenant with edit permissions can craft a malicious network name containing JSON that tricks Multus (the Kubernetes networking plugin) into connecting workloads to networks in other namespaces, bypassing network isolation. This risk is amplified when the ExternalNetResourceInjection feature gate is enabled, which skips additional safety checks. The attacker gains access to segregated network segments and can spoof IP and MAC addresses.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 4.9 MEDIUM · CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N
- Weaknesses (CWE)
- CWE-20
- Affected products
- 2 configuration(s)
- Published / Modified
- 2026-06-26 / 2026-07-06
NVD description (verbatim)
A flaw was found in KubeVirt's network annotation generator. When a tenant creates a VirtualMachineInstance with a Multus network configuration, the supplied networkName value is written verbatim into the launcher pod's v1.multus-cni.io/default-network annotation without format validation or sanitization. The only admission check rejects empty strings; no DNS-1123 format validation, JSON detection, or special character rejection is performed. When the ExternalNetResourceInjection Beta feature gate is enabled (off by default, cluster-admin only), the NAD lookup that would otherwise catch malformed names is skipped by design. A tenant with kubevirt.io:edit permissions can inject a JSON-formatted NetworkSelectionElement array specifying an arbitrary namespace, NAD name, static IP address, and MAC address. Multus on the node parses this JSON and attaches the launcher pod to the specified network attachment in any namespace, enabling cross-namespace network access and IP/MAC impersonation on network segments normally segregated from tenant workloads. The ExternalNetResourceInjection feature gate was introduced in KubeVirt v1.8.0 (first shipped in OpenShift Virtualization 4.21).
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-13434 is an input validation flaw in KubeVirt's VirtualMachineInstance (VMI) network annotation handler. When a tenant defines a Multus network configuration with a networkName parameter, that value is injected directly into the launcher pod's v1.multus-cni.io/default-network annotation without DNS-1123 validation, JSON parsing detection, or character-level sanitization. The admission webhook only rejects empty strings. When the ExternalNetResourceInjection Beta feature gate is enabled (disabled by default, cluster-admin controlled), the NAD (NetworkAttachmentDefinition) lookup that would ordinarily catch invalid names is deliberately bypassed. An attacker with kubevirt.io:edit RBAC permissions can supply a JSON-serialized NetworkSelectionElement array specifying arbitrary namespace, NAD name, static IP, and MAC address values. Multus interprets this JSON on the node and attaches the pod to the specified network in any namespace, circumventing multi-tenancy controls.
Business impact
In multi-tenant Kubernetes environments, this vulnerability breaks network isolation boundaries. Tenants with kubevirt.io:edit permissions can escape their assigned network segments, access services and data on networks intended for other teams or applications, and impersonate hosts by spoofing IP and MAC addresses. Organizations relying on KubeVirt for tenant isolation or running security-sensitive workloads on shared clusters face lateral movement risk and potential data exfiltration. The risk is contained to clusters with the ExternalNetResourceInjection feature gate enabled (non-default), but organizations evaluating or planning adoption of this feature must account for this control gap.
Affected systems
KubeVirt versions from v1.8.0 onward are affected when the ExternalNetResourceInjection Beta feature gate is enabled. OpenShift Virtualization versions 4.21 and later inherit this risk. The vulnerability is not exploitable in default KubeVirt deployments because the problematic feature gate is off by default and requires explicit cluster-admin activation. However, any cluster with ExternalNetResourceInjection=true is vulnerable if tenants have kubevirt.io:edit permissions.
Exploitability
Exploitability requires two conditions: (1) the ExternalNetResourceInjection feature gate must be enabled (cluster-admin decision), and (2) the attacker must possess kubevirt.io:edit RBAC permissions. The attack itself is straightforward—crafting a JSON-formatted networkName string requires no special tools or interaction. No user interaction or special network conditions are required. Once both preconditions are met, the attack is reliable and deterministic. The CVSS score of 4.9 (MEDIUM) reflects the conditional nature of the feature gate and the need for authenticated access, but the complete bypass of network segmentation when conditions align warrants careful attention.
Remediation
Disable the ExternalNetResourceInjection feature gate unless absolutely required for your workload. If the feature is necessary, strictly limit kubevirt.io:edit permissions to highly trusted users or service accounts. Apply security patches when released by the KubeVirt and Red Hat teams. Verify patch availability in official KubeVirt release notes and OpenShift Virtualization advisories. Consider network policies and additional admission webhooks to restrict cross-namespace network access as a defense-in-depth layer.
Patch guidance
Monitor KubeVirt GitHub releases (github.com/kubevirt/kubevirt) and Red Hat OpenShift Virtualization errata for patched versions. The vulnerability was introduced in v1.8.0, so patches are expected in maintenance branches for affected series. Vendors are expected to deliver fixes addressing input validation in the network annotation handler. For OpenShift Virtualization, consult Red Hat Security Advisories and plan upgrades through your standard OpenShift maintenance windows. Test patches in non-production environments before cluster-wide deployment.
Detection guidance
Monitor admission webhook logs for VirtualMachineInstance creation requests with networkName parameters containing curly braces, square brackets, or JSON-like structures. Audit RBAC bindings for kubevirt.io:edit role assignments, especially in multi-tenant clusters. Query cluster feature gates to confirm ExternalNetResourceInjection status. Use network policies and observability tools (e.g., Cilium, Calico) to detect unexpected cross-namespace pod-to-pod traffic from KubeVirt launcher pods. Monitor MAC and IP address assignment logs for anomalies indicating spoofing attempts.
Why prioritize this
While the CVSS score is MEDIUM (4.9), the complete breakdown of network isolation in multi-tenant Kubernetes clusters justifies elevated priority for organizations where ExternalNetResourceInjection is enabled or planned. This vulnerability directly contradicts Kubernetes security assumptions about namespace boundaries. Even though the feature gate is off by default, any cluster using or considering this feature should treat patching as high priority. The attack requires authenticated access, limiting blast radius, but the attacker profile (tenant with edit permissions) is broad.
Risk score, explained
The CVSS 3.1 score of 4.9 is classified as MEDIUM severity. The vector CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N reflects: network-adjacent attack vector, high attack complexity (due to feature gate requirement), low-privilege user (kubevirt.io:edit), no user interaction, changed scope (affecting other namespaces), low confidentiality and integrity impact. The 'High' attack complexity moderates the score despite scope change. However, organizations should note that the practical impact—complete bypass of multi-tenancy controls—may warrant higher internal risk ratings depending on workload criticality and trust model.
Frequently asked questions
Is this vulnerability active in default KubeVirt deployments?
No. The ExternalNetResourceInjection feature gate is disabled by default and requires explicit cluster-admin activation. Clusters running standard KubeVirt configurations are not affected. You can verify your cluster's status by checking feature gate configurations in KubeVirt operator settings.
Who needs kubevirt.io:edit permissions to exploit this?
Any user or service account with the kubevirt.io:edit role in their namespace can create a malicious VirtualMachineInstance. This typically includes application developers, deployment systems, and namespace-scoped administrators. In multi-tenant clusters, you should audit these bindings carefully.
Can network policies prevent this attack?
Network policies can add a defensive layer by restricting egress from launcher pods to unexpected networks. However, they are not a substitute for patching. The fundamental issue is input validation; network policies work best as defense-in-depth alongside proper input sanitization.
Does this affect OpenShift Virtualization users?
Yes, OpenShift Virtualization versions 4.21 and later carry this vulnerability when ExternalNetResourceInjection is enabled. Red Hat provides updates and guidance through Security Advisories and OpenShift errata. Check your OpenShift documentation for patching procedures and feature gate management.
This analysis is based on CVE-2026-13434 as published by official sources. Organizations should verify patch availability and compatibility with their specific KubeVirt and OpenShift versions by consulting official vendor advisories. Feature gate status should be confirmed directly on your infrastructure. No exploit code or proof-of-concept is provided here. This analysis is for defensive security purposes; any testing should be confined to authorized non-production environments. Consult your security team and vendors for deployment guidance. Source: NVD (public-domain), retrieved 2026-08-05. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-13208MEDIUMKubeVirt virt-handler gRPC Identity Validation Flaw
- CVE-2026-13218MEDIUMKubeVirt Symlink Following in virt-handler Network Cache – Analysis & Patch Guidance
- CVE-2026-13318MEDIUMKubeVirt SSRF via Untrusted Guest IP in Port-Forward Handler
- CVE-2026-13201HIGHKubeVirt Symlink Following in virt-handler Privilege Escalation
- CVE-2026-13322LOWKubeVirt Downward Metrics Memory Exhaustion (CWE-770)
- CVE-2024-21944MEDIUMMemory Integrity Vulnerability in DIMM SPD Validation
- CVE-2025-5089MEDIUMArista EOS/CVX DoS via Malformed Messages
- CVE-2025-5090MEDIUMCVX CVE-2025-5090: Input Validation Flaw Leads to Agent Crashes and Denial of Service