OracleVM 3.3:xen (OVMSA-2016-0007)

high Nessus 插件 ID 88170

简介

远程 OracleVM 主机缺少一个或多个安全更新。

描述

远程 OracleVM 系统缺少必要修补程序来解决关键安全更新:

- x86/VMX:防止 INVVPID 因非规范客户机地址而失败。若 INVLPG(以及在 SVM INVLPGA 中)未因非规范地址发生错误,当传送此类地址时,INVVPID 会失败(在“单个地址”情况中)。
由于此类拦截的 INVLPG 是有效的非 ops,因此,不会在 vmx_invlpg_intercept 中修复此问题,但会使 paging_invlpg 绝不会在这种情况下返回 true。这是 XSA-168。(CVE-2016-1571)

- x86/mm:PV superpage 处理缺少健全性检查。MMUEXT_[,UN]MARK_SUPER 未检查输入 MFN 是否有效,便将指针取消引用至 superpage 帧表。Get_superpage 有类似的问题。这是 XSA-167。(CVE-2016-1570)

- x86/HVM:避免读取 ioreq 状态超过一次,否则,特别是在编译器选择将切换器转换到跳转表时,可能会发生无法预测的行为(如果是在跳转表中,可能会执行任意代码)。这是 XSA-166。

- x86:不将 ST(n)/XMMn 值泄漏到第一个使用的域 FNINIT 不会修改这些寄存器,因此使用该寄存器不足以初始化客户机的初始状态。这是 XSA-165。(CVE-2015-8555)

- MSI-X:避免 MSI-X 表写入 pt_msix_init 时数组溢出 将 msix->msix_entry[] 分配为刚好涵盖 msix->total_entries 条目。虽然越界读取时,pci_msix_readl 不得已会读取物理内存,但 pci_msix_writel 目前只会访问/损坏不相关的内存。pt_iomem_map 对 cpu_register_physical_memory 的调用会注册页面细微区域,其可能需要作为待定的位数组与 MSI-X 表共享空间(但无法共享其他项目)。这也说明 pci_msix_readl 实际上会接受越界读取,而 pci_msi_writel 则不需要。这是 XSA-164。(CVE-2015-8554)

- 来自 43a10fecd6f4a9d8adf9f5d85e3d5e7187e2d54a 2001 年 9 月 17 日星期一 00:00:00 发件人:Ian Jackson 日期:2015 年 11 月 18 日星期三 15:34:54 +0000 主题:[修补程序] libxl:修复 pv 构建失败时的 bootloader 相关虚拟内存泄漏问题 bootloader 可能会调用 libxl__file_reference_map,其可将 pv_kernel 和 pv_ramdisk mmap 映射到进程内存。不过只有在 libxl__build_pv 的成功路径上才会取消映射。如果 libxl_bootloader.c:parse_bootloader_result 和 libxl__build_pv 末端之间任一处发生失败,libxl__file_reference_unmap 调用就会被跳过,从而导致泄漏映射的虚拟内存。理想的情况下,通过添加 libxl__domain_build_state 销毁路径的取消映射调用,即可修复此问题。可惜 libxl__domain_build_state 的生命周期不透明,且没有适当的销毁路径。但是,其中唯一不是来自 gc 的项目正是这些 bootloader 引用,且只针对一个 libxl__domain_build_state 设置,其为 libxl__domain_create_state.build_state。因此,我们可以清除 libxl__domain_create_* 的退出路径,其始终会经历 domcreate_complete。删除 libxl__build_pv 成功路径中现在冗余的取消映射。
这是 XSA-160。

基于 xen.org's xsa160.patch 冲突:调整修补程序上下文以匹配 OVM 3.3 代码库 (CVE-2015-8341)

- memory:修复 XENMEM_exchange 错误处理 assign_pages 的问题会失败,这是因为域会以并行方式终止,其不会导致管理程序崩溃。也会删除多余的 put_gfn - 至“失败”标签的所有相关路径都已执行此操作(还有其完全错误的路径)。51032ca058 已引入所有 put_gfn-s(“将查询的名称修改为 p2m”),包括 k 不需要的初始值设定项(甚至包含一种误导性注释 - 编译器警告实际作为使用错误的提示使用)。这是 XSA-159。

22326022](CVE-2015-8339、CVE-2015-8340)

- x86/HVM:始终拦截 #AC 和 #DB 这两个都是安全异常,可能会在异常传递时触发,这是防止客户机锁定 CPU 的必要程序(原因在于进入此类循环后未发生任何其他 VM 退出)。特定情况:1) 如果处理程序设置为由 32 位客户机执行一个 ring-3,且堆栈未对齐时,则在异常传递期间会抛出 #AC。2) 如果在涉及传递异常的数据结构上放置断点,则在异常传递期间会抛出 #DB。当 64 位客户机针对矢量 1 IDT 条目使用非零 IST 时,这可能导致无限循环,但即使未使用 IST,等到系统抛出分担错误的时间也会很长(视处理程序而定)。这是 XSA-156。

(CVE-2015-5307、CVE-2015-8104)

解决方案

更新受影响的 xen/xen-tools 程序包。

另见

http://www.nessus.org/u?ca4defaf

插件详情

严重性: High

ID: 88170

文件名: oraclevm_OVMSA-2016-0007.nasl

版本: 2.8

类型: local

发布时间: 2016/1/26

最近更新时间: 2021/1/4

支持的传感器: Nessus

风险信息

VPR

风险因素: Medium

分数: 6.5

CVSS v2

风险因素: High

基本分数: 7.8

时间分数: 5.8

矢量: CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:C

CVSS v3

风险因素: High

基本分数: 8.6

时间分数: 7.5

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N

时间矢量: CVSS:3.0/E:U/RL:O/RC:C

漏洞信息

CPE: p-cpe:/a:oracle:vm:xen, p-cpe:/a:oracle:vm:xen-tools, cpe:/o:oracle:vm_server:3.3

必需的 KB 项: Host/local_checks_enabled, Host/OracleVM/release, Host/OracleVM/rpm-list

易利用性: No known exploits are available

补丁发布日期: 2016/1/25

漏洞发布日期: 2015/11/16

参考资料信息

CVE: CVE-2015-5307, CVE-2015-8104, CVE-2015-8339, CVE-2015-8340, CVE-2015-8341, CVE-2015-8554, CVE-2015-8555, CVE-2016-1570, CVE-2016-1571