Skip to main content

LoopDNS资讯播报

LoopDNS 综合资讯---简洁,及时,快速,准确


频道: @DNSPODT

电报讨论组: @LoopDNS

撤稿流程: https://t.me/loopdns/107752
  1. 重要/漏洞:QEMUtiny:QEMU CXL Type-3 设备仿真存在可被利用的越界读写漏洞链

    漏洞编号: 暂无公开 CVE / PoC 名称:QEMUtiny
    重要等级: 需要关注的(虚拟机逃逸风险)
    CVSS 分数:

    影响范围:
    受影响组件:QEMU CXL Type-3 设备仿真模块
    受影响代码路径:hw/cxl/cxl-mailbox-utils.c
    受影响功能:CXL mailbox 相关命令处理逻辑


    主要受影响配置:
    启用了 CXL 支持的 QEMU 实例;
    向 guest 暴露了 cxl-type3 设备;
    guest 内攻击者具备 root 权限或可访问 PCI config / CXL BAR / mailbox MMIO 的等效能力。PoC README 明确说明复现程序需要在 guest 内以 root 运行,因为需要写 PCI config space 并通过 sysfs mmap CXL 设备 BAR。

    注意: 仅安装 QEMU 但未运行相关虚拟机;普通 QEMU 虚拟机未启用 CXL / 未配置 cxl-type3;QEMU user-mode emulation;物理 CXL 硬件本身通常不受影响。

    漏洞原理:
    该漏洞链出现在 QEMU CXL Type-3 设备仿真的 mailbox 处理逻辑中。CXL Type-3 设备在 QEMU 中用于模拟接入 CXL host 的内存设备,CXL 设备会通过 PCIe 相关接口和 BAR-mapped memory 访问寄存器与 mailbox。

    漏洞链由两个核心缺陷组成:

    1. GET_LOG 越界读
    cmd_logs_get_log() 在处理 CEL log offset 时,边界检查按“字节偏移”理解,但实际 memmove() 源地址表达式中把该 offset 用在结构体指针运算上,导致可读取 CEL buffer 之外的相邻 QEMU 进程内存。PoC README 将其描述为 CXL mailbox GET_LOG 路径中的 out-of-bounds read。

    2. SET_FEATURE 越界写
    cmd_features_set_feature() 接受写入多个 feature write-attribute 结构的 offset,但部分 PPR / sparing 路径缺少 offset + bytes_to_copy 是否仍在目标结构体内的完整边界检查。PoC README 指出受影响路径包括 soft_ppr_wr_attrs、hard_ppr_wr_attrs、cacheline_sparing_wr_attrs、row_sparing_wr_attrs、bank_sparing_wr_attrs、rank_sparing_wr_attrs。

    攻击者在满足前置条件后,可先利用越界读泄露 QEMU 进程地址信息,再利用越界写破坏 CXL Type-3 设备对象后续字段,最终通过 QEMU 内部 memory dispatch / sanitize 路径触发受控回调。本频道在实际复现后发现最终权限等同于运行 QEMU 的宿主进程权限,同时结合先前的内核漏洞攻击者可以获取root权限。

    注意:
    该漏洞依赖特定 QEMU 构建和宿主 libc 布局偏移, 目标 VM 需要暴露 CXL Type-3 设备、guest 内具备较高权限。

    受影响组件:
    QEMU Backend / CXL Type-3 device emulation

    具体路径:
    hw/cxl/cxl-mailbox-utils.c
    CXL mailbox LOGS / GET_LOG
    CXL mailbox FEATURES / SET_FEATURE
    CXL mailbox MEDIA_OPERATIONS / SANITIZE 相关触发路径


    受影响对象:
    启用 cxl=on 的 QEMU 实例
    配置了 cxl-type3 的虚拟机
    将 CXL mailbox BAR 暴露给不可信 guest 的测试、云平台、CI/fuzzing 或研发环境


    处置建议:
    1. 排查生产和测试环境中的 QEMU 启动参数,重点确认是否存在 cxl=oncxl-type3pxb-cxlcxl-rp 等配置。
    2. 不要向不可信 guest 暴露 QEMU CXL Type-3 设备。
    3. 临时禁用 CXL Type-3 emulation,或仅在隔离实验环境中使用。


    参考链接:Github