CVE-2026-13622
Kubevirt: virt-handler-rhel9: kubevirt: virt-handler migration proxy follows symlinks allowing container escape to host
A symlink following vulnerability was found in KubeVirt's virt-handler migration proxy. During live migration, virt-handler dials Unix sockets inside the target virt-launcher pod via /proc/<pid>/root/ paths using net.Dial() without symlink protection. These socket paths reside in qemu-owned directories writable by the virt-launcher user. An attacker with namespace edit and pods/exec permissions can replace a migration proxy socket with a symlink to the host CRI-O socket. Because virt-handler runs as root in the host mount namespace, absolute symlink targets resolve against the host filesystem, and the bidirectional io.Copy proxy relays attacker-controlled bytes to the container runtime, enabling full node compromise.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.8
Kubevirt: virt-handler-rhel9: kubevirt: virt-handler migration proxy follows symlinks allowing container escape to host
A symlink following vulnerability was found in KubeVirt's virt-handler migration proxy. During live migration, virt-handler dials Unix sockets inside the target virt-launcher pod via /proc/<pid>/root/ paths using net.Dial() without symlink protection. These socket paths reside in qemu-owned directories writable by the virt-launcher user. An attacker with namespace edit and pods/exec permissions can replace a migration proxy socket with a symlink to the host CRI-O socket. Because virt-handler runs as root in the host mount namespace, absolute symlink targets resolve against the host filesystem, and the bidirectional io.Copy proxy relays attacker-controlled bytes to the container runtime, enabling full node compromise.
- Record
CVE-2026-13622- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
EUVDEUVD-2026-57615
8.8
A symlink following vulnerability was found in KubeVirt's virt-handler migration proxy. During live migration, virt-handler dials Unix sockets inside the target virt-launcher pod via /proc/<pid>/root/ paths using net.Dial() without symlink protection. These socket paths reside in qemu-owned directories writable by the virt-launcher user. An attacker with namespace edit and pods/exec permissions can replace a migration proxy socket with a symlink to the host CRI-O socket. Because virt-handler runs as root in the host mount namespace, absolute symlink targets resolve against the host filesystem, and the bidirectional io.Copy proxy relays attacker-controlled bytes to the container runtime, enabling full node compromise.
- Record
EUVD-2026-57615- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-4336-pf6g-hp94
8.8
A symlink following vulnerability was found in KubeVirt's virt-handler migration proxy. During...
A symlink following vulnerability was found in KubeVirt's virt-handler migration proxy. During live migration, virt-handler dials Unix sockets inside the target virt-launcher pod via /proc/<pid>/root/ paths using net.Dial() without symlink protection. These socket paths reside in qemu-owned directories writable by the virt-launcher user. An attacker with namespace edit and pods/exec permissions can replace a migration proxy socket with a symlink to the host CRI-O socket. Because virt-handler runs as root in the host mount namespace, absolute symlink targets resolve against the host filesystem, and the bidirectional io.Copy proxy relays attacker-controlled bytes to the container runtime, enabling full node compromise.
- Record
GHSA-4336-pf6g-hp94- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
NVD
8.8
A symlink following vulnerability was found in KubeVirt's virt-handler migration proxy. During live migration, virt-handler dials Unix sockets inside the target virt-launcher pod via /proc/<pid>/root/ paths using net.Dial() without symlink protection. These socket paths reside in qemu-owned directories writable by the virt-launcher user. An attacker with namespace edit and pods/exec permissions can replace a migration proxy socket with a symlink to the host CRI-O socket. Because virt-handler runs as root in the host mount namespace, absolute symlink targets resolve against the host filesystem, and the bidirectional io.Copy proxy relays attacker-controlled bytes to the container runtime, enabling full node compromise.
- Record
CVE-2026-13622- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVAZL-111641 No score
CVE-2026-13622 affecting package kubevirt-openvmm 1.9.0-1
A symlink following vulnerability was found in KubeVirt's virt-handler migration proxy. During live migration, virt-handler dials Unix sockets inside the target virt-launcher pod via /proc/<pid>/root/ paths using net.Dial() without symlink protection. These socket paths reside in qemu-owned directories writable by the virt-launcher user. An attacker with namespace edit and pods/exec permissions can replace a migration proxy socket with a symlink to the host CRI-O socket. Because virt-handler runs as root in the host mount namespace, absolute symlink targets resolve against the host filesystem, and the bidirectional io.Copy proxy relays attacker-controlled bytes to the container runtime, enabling full node compromise.
- Record
AZL-111641- Updated
- 2026-11-05
OSVAZL-95943 No score
CVE-2026-13622 affecting package kubevirt for versions less than 1.8.4-4
A symlink following vulnerability was found in KubeVirt's virt-handler migration proxy. During live migration, virt-handler dials Unix sockets inside the target virt-launcher pod via /proc/<pid>/root/ paths using net.Dial() without symlink protection. These socket paths reside in qemu-owned directories writable by the virt-launcher user. An attacker with namespace edit and pods/exec permissions can replace a migration proxy socket with a symlink to the host CRI-O socket. Because virt-handler runs as root in the host mount namespace, absolute symlink targets resolve against the host filesystem, and the bidirectional io.Copy proxy relays attacker-controlled bytes to the container runtime, enabling full node compromise.
- Record
AZL-95943- Updated
- 2026-11-05
Show 6 moreShow less
OSVopenSUSE-SU-2026:11752-1 No score
kubevirt1.9-container-disk-1.9.0-3.1 on GA media
These are all security issues fixed in the kubevirt1.9-container-disk-1.9.0-3.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11752-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:12227-1 No score
kubevirt1.8-container-disk-1.8.4-6.1 on GA media
These are all security issues fixed in the kubevirt1.8-container-disk-1.8.4-6.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:12227-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21590-1 No score
Security update for kubevirt1.8
This update for kubevirt1.8 fixes the following issues:
Update to version 1.8.4.
Security issues fixed:
- CVE-2026-13201: virt-handler-rhel9: kubevirt: safepath
OpenAtNoFollowsymlink following via/proc/self/fdallows host file metadata modification (bsc#1269093). - CVE-2026-13622: virt-handler migration proxy follows symlinks and allows container escape to host (bsc#1272840).
- CVE-2026-25680, CVE-2026-25681, CVE-2026-27136, CVE-2026-42502, CVE-2026-42506: golang.org/x/net/html: multiple issues when parsing HTML files (bsc#1267120).
- CVE-2026-33814: golang.org/x/net/http2: processing of HTTP/2 SETTINGS frames with a crafted
SETTINGS_MAX_FRAME_SIZEcan lead to an infinite loop and a denial of service (bsc#1265736). - CVE-2026-35469: github.com/moby/spdystream: improper validation of attacker-controlled input in the SPDY/3 frame parser allows for a denial of service via crafted SPDY frames (bsc#1262265).
- CVE-2026-39821: golang.org/x/net/idna: failure to reject ASCII-only Punycode-encoded labels allows for validation bypass and privilege escalation (bsc#1266575).
- CVE-2026-39827, CVE-2026-39828, CVE-2026-39829, CVE-2026-39830, CVE-2026-39831, CVE-2026-39832, CVE-2026-39833,
CVE-2026-39834, CVE-2026-39835, CVE-2026-42508, CVE-2026-46595, CVE-2026-46597, CVE-2026-46598:
golang.org/x/crypto/ssh: multiple issues in
x/crypto/ssh(bsc#1266151). - CVE-2026-46600: parsing of invalid SVCB or HTTPS RR when the size of a parameter value overflows the message buffer can lead to panic (bsc#1273606).
- CVE-2026-56852: improper handling of truncated/invalid UTF-8 input can lead to an infinite loop (bsc#1272011).
Other updates and bugfixes:
- Fix the release manifests' image references (bsc#1272604).
- Add a
libguestfs-toolssubpackage. - Build with Go >= 1.25 (required by
golang.org/x/net0.55). - Version 1.8.4:
- node-labeller: use new
libvirtflags for full feature expansion. - Fix gRPC connection leak in
GetLauncherClient; clean up ghost launcher record on connection setup failure. - api: validate
VMI VSOCK CIDand checksum status fields asuint32. - virt-operator: refine canary flow to fully support out-of-band changes.
- New
virt-api/virt-handler/virt-operatorready and down metrics, alerts and recording rules.
- node-labeller: use new
- Refresh
disks-images-provider.yamlto the v1.8.4 image tag.
- Record
openSUSE-SU-2026:21590-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:22180-1 No score
Security update for kubevirt1.9
This update for kubevirt1.9 fixes the following issues:
- CVE-2026-13622: virt-handler migration proxy follows symlinks allowing container escape to host (bsc#1272840).
- CVE-2026-78659: golang.org/x/net/http2: HTTP/2 server memory exhaustion due to Trailer headers (bsc#1286984).
- CVE-2026-78660: golang.org/x/net/http2: HTTP/2 transport accepts malformed framing-related headers (bsc#1287039).
- CVE-2026-78663: golang.org/x/net/http2: double flow control refund on HTTP/2 server streams (bsc#1287143).
- CVE-2026-78669: golang.org/x/net/http2: excessive CPU consumption from repeated initial window changes (bsc#1285255).
- CVE-2026-97032: golang.org/x/net/http2: HTTP/2 server crash due to HPACK encoder race (bsc#1287446).
Update to version 1.9.1:
- virt-template is pinned at v0.2.3
- several bug fixes, see https://github.com/kubevirt/kubevirt/releases/tag/v1.9.1
- Record
openSUSE-SU-2026:22180-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:3604-1 No score
Security update for kubevirt
This update for kubevirt fixes the following issue:
- CVE-2026-13622:
virt-handlermigration proxy follows symlinks, allowing container escape to host (bsc#1272840).
- Record
SUSE-SU-2026:3604-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:3630-1 No score
Security update for kubevirt-1.6, virt-api-container-1.6, virt-controller-container-1.6, virt-exportproxy-container-1.6, virt-exportserver-container-1.6, virt-handler-container-1.6, virt-launcher-container-1.6, virt-libguestfs-tools-container-1.6, virt-operator-container-1.6, virt-pr-helper-container-1.6, virt-synchronization-controller-container-1.6
This update for kubevirt-1.6, virt-api-container-1.6, virt-controller-container-1.6, virt-exportproxy-container-1.6, virt-exportserver-container-1.6, virt-handler-container-1.6, virt-launcher-container-1.6, virt-libguestfs-tools-container-1.6, virt-operator-container-1.6, virt-pr-helper-container-1.6, virt-synchronization-controller-container-1.6 fixes the following issues:
- CVE-2025-47911: golang.org/x/net/html: algorithms that have quadratic complexity when parsing HTML documents allow for denial of service (bsc#1251420).
- CVE-2025-47914: golang.org/x/crypto/ssh/agent: no validation of message size when processing new identity requests can cause a panic due to an out-of-bounds read (bsc#1254014).
- CVE-2025-58181: golang.org/x/crypto/ssh: no validation of number of mechanisms in GSSAPI authentication requests can cause unbounded memory consumption (bsc#1253935).
- CVE-2025-58190: golang.org/x/net/html: excessive memory consumption by
html.ParseFragmentwhen processing specially crafted input can lead to a denial of service (bsc#1251615). - CVE-2026-13201: virt-handler-rhel9: kubevirt: safepath
OpenAtNoFollowsymlink following via/proc/self/fdallows host file metadata modification (bsc#1269093). - CVE-2026-13622: virt-handler migration proxy follows symlinks and allows container escape to host (bsc#1272840).
- CVE-2026-25680,CVE-2026-25681,CVE-2026-27136,CVE-2026-42502,CVE-2026-42506: golang.org/x/net/html: multiple issues when parsing HTML files (bsc#1267120).
- CVE-2026-33814: golang.org/x/net/http2: processing of HTTP/2 SETTINGS frames with a crafted
SETTINGS_MAX_FRAME_SIZEcan lead to an infinite loop and a denial of service (bsc#1265736). - CVE-2026-35469: github.com/moby/spdystream: improper validation of attacker-controlled input in the SPDY/3 frame parser allows for a denial of service via crafted SPDY frames (bsc#1262265).
- CVE-2026-39821: golang.org/x/net/idna: failure to reject ASCII-only Punycode-encoded labels allows for validation bypass and privilege escalation (bsc#1266575).
- CVE-2026-46600: parsing of invalid SVCB or HTTPS RR when the size of a parameter value overflows the message buffer can lead to panic (bsc#1273606).
- CVE-2026-56852: improper handling of truncated/invalid UTF-8 input can lead to an infinite loop (bsc#1272000).
Other updates and bugfixes:
- Fixed
printf-style calls with non-constant format strings (cmd/virt-chroot,tests/) that failgo1.25's vet (toolchain required by thex/net0.55.0 re-vendor); rewritten with no behavior change. - Build with Go >= 1.25 (required by
golang.org/x/net0.55).
- Record
SUSE-SU-2026:3630-1- Updated
- 2026-11-02
Affected products
- red hat container native virtualization 4.12
- red hat container native virtualization 4.13
- red hat container native virtualization 4.14
- red hat container native virtualization 4.15
- red hat container native virtualization 4.16
- red hat container native virtualization 4.17
- red hat container native virtualization 4.18
- red hat container native virtualization 4.19
- red hat container native virtualization 4.20
- red hat container native virtualization 4.21
- red hat container native virtualization 4.22
Affected packages
| Package | Affected | Fixed |
|---|---|---|
kubevirt-openvmmAzure Linux:3 |
through 1.9.0-1 | None known |
kubevirtAzure Linux:3 |
before 1.8.4-4 | 1.8.4-4 |
kubevirtSUSE:Linux Enterprise Module for Containers 15 SP7 |
before 1.7.4-150700.3.36.1 | 1.7.4-150700.3.36.1 |
kubevirt-1.6SUSE:Linux Enterprise Module for Containers 15 SP7 From an advisory covering 16 CVEs |
before 1.6.6-150700.15.17.1 | 1.6.6-150700.15.17.1 |
kubevirt1.9openSUSE:Tumbleweed From an advisory covering 5 CVEs |
before 1.9.0-3.1 | 1.9.0-3.1 |
kubevirt1.8openSUSE:Tumbleweed |
before 1.8.4-6.1 | 1.8.4-6.1 |
kubevirt1.8openSUSE:Leap 16.0 From an advisory covering 25 CVEs |
before 1.8.4-160000.1.1 | 1.8.4-160000.1.1 |
kubevirt1.9openSUSE:Leap 16.0 From an advisory covering 6 CVEs |
before 1.9.1-160000.1.1 | 1.9.1-160000.1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-13622 is a high vulnerability (CVSS 8.8) in Red Hat Container Native Virtualization 4.12, published August 12, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.20%, the 10th percentile. Fixed in kubevirt 1.8.4-4.
References
access.redhat.com/errata/RHEA-2026:53670
access.redhat.com/errata/RHSA-2026:51031
access.redhat.com/errata/RHSA-2026:53655
access.redhat.com/errata/RHSA-2026:53671
access.redhat.com/errata/RHSA-2026:53684
access.redhat.com/errata/RHSA-2026:53721
Show 69 moreShow less
access.redhat.com/errata/RHSA-2026:53728
access.redhat.com/errata/RHSA-2026:53763
access.redhat.com/errata/RHSA-2026:53797
access.redhat.com/errata/RHSA-2026:53826
access.redhat.com/errata/RHSA-2026:53838
access.redhat.com/security/cve/CVE-2026-13622
bugzilla.redhat.com/show_bug.cgi?id=2494142
nvd.nist.gov/vuln/detail/CVE-2026-13622
github.com/advisories/GHSA-4336-pf6g-hp94
suse.com/support/update/announcement/2026/suse-su-20263604-1
bugzilla.suse.com/1272840
suse.com/security/cve/CVE-2026-13622
suse.com/support/update/announcement/2026/suse-su-20263630-1
bugzilla.suse.com/1251420
bugzilla.suse.com/1251615
bugzilla.suse.com/1253935
bugzilla.suse.com/1254014
bugzilla.suse.com/1262265
bugzilla.suse.com/1265736
bugzilla.suse.com/1266575
bugzilla.suse.com/1267120
bugzilla.suse.com/1269093
bugzilla.suse.com/1272000
bugzilla.suse.com/1273606
suse.com/security/cve/CVE-2025-47911
suse.com/security/cve/CVE-2025-47914
suse.com/security/cve/CVE-2025-58181
suse.com/security/cve/CVE-2025-58190
suse.com/security/cve/CVE-2026-13201
suse.com/security/cve/CVE-2026-25680
suse.com/security/cve/CVE-2026-25681
suse.com/security/cve/CVE-2026-27136
suse.com/security/cve/CVE-2026-33814
suse.com/security/cve/CVE-2026-35469
suse.com/security/cve/CVE-2026-39821
suse.com/security/cve/CVE-2026-42502
suse.com/security/cve/CVE-2026-42506
suse.com/security/cve/CVE-2026-46600
suse.com/security/cve/CVE-2026-56852
suse.com/security/cve/CVE-2026-56854
suse.com/security/cve/CVE-2026-56855
suse.com/security/cve/CVE-2026-84303
suse.com/security/cve/CVE-2026-84304
bugzilla.suse.com/1266151
bugzilla.suse.com/1272011
bugzilla.suse.com/1272604
suse.com/security/cve/CVE-2026-39827
suse.com/security/cve/CVE-2026-39828
suse.com/security/cve/CVE-2026-39829
suse.com/security/cve/CVE-2026-39830
suse.com/security/cve/CVE-2026-39831
suse.com/security/cve/CVE-2026-39832
suse.com/security/cve/CVE-2026-39833
suse.com/security/cve/CVE-2026-39834
suse.com/security/cve/CVE-2026-39835
suse.com/security/cve/CVE-2026-42508
suse.com/security/cve/CVE-2026-46595
suse.com/security/cve/CVE-2026-46597
suse.com/security/cve/CVE-2026-46598
bugzilla.suse.com/1285255
bugzilla.suse.com/1286984
bugzilla.suse.com/1287039
bugzilla.suse.com/1287143
bugzilla.suse.com/1287446
suse.com/security/cve/CVE-2026-78659
suse.com/security/cve/CVE-2026-78660
suse.com/security/cve/CVE-2026-78663
suse.com/security/cve/CVE-2026-78669
suse.com/security/cve/CVE-2026-97032