VYPR
Moderate severityNVD Advisory· Published Nov 7, 2025· Updated Nov 10, 2025

KubeVirt Isolation Detection Flaw Allows Arbitrary File Permission Changes

CVE-2025-64437

Description

KubeVirt is a virtual machine management add-on for Kubernetes. In versions before 1.5.3 and 1.6.1, the virt-handler does not verify whether the launcher-sock is a symlink or a regular file. This oversight can be exploited, for example, to change the ownership of arbitrary files on the host node to the unprivileged user with UID 107 (the same user used by virt-launcher) thus, compromising the CIA (Confidentiality, Integrity and Availability) of data on the host. To successfully exploit this vulnerability, an attacker should be in control of the file system of the virt-launcher pod. This vulnerability is fixed in 1.5.3 and 1.6.1.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
kubevirt.io/kubevirtGo
< 1.5.31.5.3
kubevirt.io/kubevirtGo
>= 1.6.0-alpha.0, < 1.6.11.6.1

Affected products

1

Patches

3
8644dbe0d047

Detector: Use safepath

https://github.com/kubevirt/kubevirtLuboslav PivarcJul 22, 2025via ghsa
1 file changed · +5 0
  • pkg/virt-handler/isolation/detector.go+5 0 modified
    @@ -36,6 +36,7 @@ import (
     	v1 "kubevirt.io/api/core/v1"
     	"kubevirt.io/client-go/log"
     
    +	"kubevirt.io/kubevirt/pkg/safepath"
     	"kubevirt.io/kubevirt/pkg/util"
     	"kubevirt.io/kubevirt/pkg/virt-controller/services"
     	cmdclient "kubevirt.io/kubevirt/pkg/virt-handler/cmd-client"
    @@ -214,6 +215,10 @@ func (s *socketBasedIsolationDetector) getPid(socket string) (int, error) {
     	}
     	defer sock.Close()
     
    +	_, err = safepath.NewPathNoFollow(socket)
    +	if err != nil {
    +		return -1, err
    +	}
     	ufile, err := sock.(*net.UnixConn).File()
     	if err != nil {
     		return -1, err
    
f59ca63133f2

Detector: Use safepath

https://github.com/kubevirt/kubevirtLuboslav PivarcJul 22, 2025via ghsa
1 file changed · +5 0
  • pkg/virt-handler/isolation/detector.go+5 0 modified
    @@ -36,6 +36,7 @@ import (
     	v1 "kubevirt.io/api/core/v1"
     	"kubevirt.io/client-go/log"
     
    +	"kubevirt.io/kubevirt/pkg/safepath"
     	"kubevirt.io/kubevirt/pkg/util"
     	"kubevirt.io/kubevirt/pkg/virt-controller/services"
     	cmdclient "kubevirt.io/kubevirt/pkg/virt-handler/cmd-client"
    @@ -214,6 +215,10 @@ func (s *socketBasedIsolationDetector) getPid(socket string) (int, error) {
     	}
     	defer sock.Close()
     
    +	_, err = safepath.NewPathNoFollow(socket)
    +	if err != nil {
    +		return -1, err
    +	}
     	ufile, err := sock.(*net.UnixConn).File()
     	if err != nil {
     		return -1, err
    
3ce9f41c54d0

Detector: Use safepath

https://github.com/kubevirt/kubevirtLuboslav PivarcJul 22, 2025via ghsa
1 file changed · +5 0
  • pkg/virt-handler/isolation/detector.go+5 0 modified
    @@ -36,6 +36,7 @@ import (
     	v1 "kubevirt.io/api/core/v1"
     	"kubevirt.io/client-go/log"
     
    +	"kubevirt.io/kubevirt/pkg/safepath"
     	"kubevirt.io/kubevirt/pkg/util"
     	"kubevirt.io/kubevirt/pkg/virt-controller/services"
     	cmdclient "kubevirt.io/kubevirt/pkg/virt-handler/cmd-client"
    @@ -214,6 +215,10 @@ func (s *socketBasedIsolationDetector) getPid(socket string) (int, error) {
     	}
     	defer sock.Close()
     
    +	_, err = safepath.NewPathNoFollow(socket)
    +	if err != nil {
    +		return -1, err
    +	}
     	ufile, err := sock.(*net.UnixConn).File()
     	if err != nil {
     		return -1, err
    

Vulnerability mechanics

Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

6

News mentions

0

No linked articles in our index yet.