<Vulnerability name="CVE-2026-13434">
    <DocumentDistribution xml:lang="en">Copyright © 2012 Red Hat, Inc. All rights reserved.</DocumentDistribution>
    <ThreatSeverity>Moderate</ThreatSeverity>
    <PublicDate>2026-06-26T00:00:00</PublicDate>
    <Bugzilla id="2493576" url="https://bugzilla.redhat.com/show_bug.cgi?id=2493576" xml:lang="en:us">
virt-controller-rhel9: kubevirt: kubevirt: Multus default-network annotation injection via unvalidated tenant networkName when ExternalNetResourceInjection is enabled
    </Bugzilla>
    <CVSS3 status="draft">
        <CVSS3BaseScore>4.9</CVSS3BaseScore>
        <CVSS3ScoringVector>CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:N</CVSS3ScoringVector>
    </CVSS3>
    <CWE>CWE-20</CWE>
    <Details xml:lang="en:us" source="Mitre">
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).
    </Details>
    <Details xml:lang="en:us" source="Red Hat">
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).
    </Details>
    <Statement xml:lang="en:us">
Red Hat has assessed this flaw as Moderate impact for OpenShift Virtualization. The vulnerability requires the ExternalNetResourceInjection Beta feature gate to be explicitly enabled by a cluster administrator — this gate is off by default in all shipped versions of OpenShift Virtualization. When the gate is disabled (the default configuration), the NAD lookup in virt-controller catches invalid network names (bracket-containing strings fail Kubernetes object name validation), and pod rendering is blocked. Environments that have not explicitly enabled this feature gate are not vulnerable. The ExternalNetResourceInjection feature gate was introduced in KubeVirt v1.8.0 and first shipped in OpenShift Virtualization 4.21; earlier versions are not affected. For environments where the gate is enabled, a tenant with standard VM creation permissions (kubevirt.io:edit) could gain network access to segments in other namespaces, though actual data access depends on what services are reachable on those networks and whether NetworkPolicy is enforced on the target segments.
    </Statement>
    <Acknowledgement xml:lang="en:us">
This issue was discovered by Huzaifa Sidhpurwala (Red Hat).
    </Acknowledgement>
    <Mitigation xml:lang="en:us">
If the ExternalNetResourceInjection feature gate has been enabled, disable it by removing it from the HyperConverged CR's spec.featureGates configuration. This restores the NAD lookup that blocks malformed network names. If the feature gate is required for operational reasons, restrict kubevirt.io:edit permissions to trusted users only and enforce NetworkPolicy on sensitive network segments to limit lateral movement from unauthorized attachments.
    </Mitigation>
    <PackageState cpe="cpe:/a:redhat:container_native_virtualization:4">
        <ProductName>Red Hat OpenShift Virtualization 4</ProductName>
        <FixState>Fix deferred</FixState>
        <PackageName>container-native-virtualization/virt-controller-rhel9</PackageName>
    </PackageState>
    <References xml:lang="en:us">
https://www.cve.org/CVERecord?id=CVE-2026-13434
https://nvd.nist.gov/vuln/detail/CVE-2026-13434
    </References>
</Vulnerability>