Oracle Linux 6 / 7:Unbreakable Enterprise 内核 (ELSA-2018-4134)

high Nessus 插件 ID 110583

简介

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

描述

远程 Oracle Linux 6 / 7 主机上安装的程序包受到 ELSA-2018-4134 公告中提及的多个漏洞的影响。

- 在低于 4.5 的 Linux 内核版本中,sound/usb/midi.c 中的 snd_usbmidi_create 函数中存在双重释放漏洞,物理邻近攻击者可利用此漏洞,通过涉及无效 USB 描述符的向量,造成拒绝服务(错误),或可能造成其他不明影响。(CVE-2016-2384)

- 处理传入 L2CAP 命令 ConfigRequest 和 ConfigResponse 消息的过程中存在一个漏洞,可影响 Linux 内核 3.3-rc1 及更高版本。存在此信息泄露问题的原因是,未初始化的堆栈变量可在未初始化状态下返回给攻击者。通过操纵在处理这些配置消息之前的代码流,攻击者还可获取对未初始化堆栈变量中所保留数据的一些控制权。攻击者可利用此漏洞,绕过 KASLR 和堆栈 canary 保护,因为通过此方式可泄露指针和堆栈 canary。将此漏洞与(例如)之前在 L2CAP 配置解析中披露的 RCE 漏洞 (CVE-2017-1000251) 结合使用,攻击者可针对使用上述缓解措施构建的内核利用 RCE。此漏洞的详情如下:在 l2cap_parse_conf_rsp 函数和 l2cap_parse_conf_req 函数中,已在未初始化的情况下声明以下变量:struct l2cap_conf_efs efs;此外,在解析这两个函数中的输入配置参数时,处理 EFS 元素的 switch case 还可能会跳过将写入 efs 变量的 memcpy 调用:... case L2CAP_CONF_EFS: if (olen == sizeof(efs)) memcpy(&efs;, (void
*)val, olen); ... 上面 if 条件中的 olen 是受攻击者控制的,不论该 if 条件如何编写,这两个函数中的 efs 变量最终都会被添加到正在构建的传出配置请求中:l2cap_add_conf_opt(&ptr;, L2CAP_CONF_EFS, sizeof(efs), (unsigned long) &efs;);因此,通过发送包含 L2CAP_CONF_EFS 元素(元素长度不是 sizeof(efs))的配置请求或响应,可避免使用未初始化 efs 变量的 memcpy,并会将未初始化的变量返回给攻击者(16 字节)。(CVE-2017-1000410)

- Linux 内核 3.18 版的 modify_user_hw_breakpoint() 中存在危险的功能漏洞,可造成系统崩溃,并可能造成内存损坏。此攻击的可利用方式包括本地代码执行和使用 ptrace。此漏洞似乎已在 git 提交 f67b15037a7a50c57f72e69a6d59941ad90a0f0f 中修复。(CVE-2018-1000199)

- 在 Linux 内核 4.14.7 及之前版本中,攻击者可利用 KVM 实现,从内核内存获取潜在敏感信息,亦即 write_mmio 基于堆栈的越界读取,此问题与 arch/x86/kvm/x86.c 和 include/trace/events/kvm.h 相关。(CVE-2017-17741)

- 在 Linux 内核 4.16.3 及之前版本中,本地用户可利用 fs/xfs/libxfs/xfs_bmap.c 中的 xfs_bmap_extents_to_btree 函数,通过构建的 xfs 映像,造成拒绝服务(xfs_bmapi_write 空指针取消引用)。(CVE-2018-10323)

- 在使用基于 Intel 核心的微处理器的系统上,本地进程可能会利用使用 Lazy FP 状态恢复技术的系统软件,通过推测执行边信道,根据另一进程推断数据。(CVE-2018-3665)

- 在低于 4.4.1 的 Linux 内核版本中,sound/core/seq/seq_clientmgr.c 中的 snd_seq_ioctl_remove_events 函数在继续执行 FIFO 清理之前未验证 FIFO 分配,本地用户可利用此漏洞,通过构建的 ioctl 调用,造成拒绝服务(空指针取消引用和 OOPS)。(CVE-2016-2543)

- 在低于 4.4.1 的 Linux 内核版本中,sound/core/hrtimer.c 未防止递归回调访问,本地用户可利用此漏洞,通过构建的 ioctl 调用,造成拒绝服务(死锁)。(CVE-2016-2549)

- 在低于 4.4.1 的 Linux 内核版本中,sound/core/seq/seq_queue.c 中的 queue_delete 函数中存在争用条件,本地用户可利用此漏洞,通过在某个时间执行 ioctl 调用,造成拒绝服务(释放后使用和系统崩溃)。(CVE-2016-2544)

- 在低于 4.4.1 的 Linux 内核版本中,sound/core/timer.c 中的 snd_timer_interrupt 函数未正确维护特定链接列表,本地用户可利用此漏洞,通过构建的 ioctl 调用,造成拒绝服务(争用条件和系统崩溃)。(CVE-2016-2545)

- 在低于 4.4.1 的 Linux 内核版本中,sound/core/timer.c 采用的锁定方法未考虑用从属定时器实例,本地用户可利用此漏洞,通过构建的 ioctl 调用,造成拒绝服务(争用条件、释放后使用和系统崩溃)。(CVE-2016-2547)

- 在低于 4.4.1 的 Linux 内核版本中,sound/core/timer.c 在关闭或停止操作之后保留了某些链接列表,本地用户可利用此漏洞,通过构建的 ioctl 调用,造成拒绝服务(系统崩溃),此问题与 (1) snd_timer_close 和 (2) _snd_timer_stop 函数相关。(CVE-2016-2548)

请注意,Nessus 尚未测试此问题,而是只依靠应用程序自我报告的版本号来判断。

解决方案

更新受影响的程序包。

另见

https://linux.oracle.com/errata/ELSA-2018-4134.html

插件详情

严重性: High

ID: 110583

文件名: oraclelinux_ELSA-2018-4134.nasl

版本: 1.9

类型: local

代理: unix

发布时间: 2018/6/18

最近更新时间: 2021/9/8

支持的传感器: Frictionless Assessment Agent, Nessus Agent, Nessus

风险信息

VPR

风险因素: High

分数: 7.1

CVSS v2

风险因素: Medium

基本分数: 5

时间分数: 4.4

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

CVSS 分数来源: CVE-2017-1000410

CVSS v3

风险因素: High

基本分数: 7.5

时间分数: 7.2

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

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

漏洞信息

CPE: cpe:/o:oracle:linux:6, cpe:/o:oracle:linux:7, p-cpe:/a:oracle:linux:dtrace-modules-3.8.13-118.21.4.el6uek, p-cpe:/a:oracle:linux:dtrace-modules-3.8.13-118.21.4.el7uek, p-cpe:/a:oracle:linux:kernel-uek, p-cpe:/a:oracle:linux:kernel-uek-debug, p-cpe:/a:oracle:linux:kernel-uek-debug-devel, p-cpe:/a:oracle:linux:kernel-uek-devel, p-cpe:/a:oracle:linux:kernel-uek-doc, p-cpe:/a:oracle:linux:kernel-uek-firmware

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

可利用: true

易利用性: Exploits are available

补丁发布日期: 2018/6/15

漏洞发布日期: 2016/2/14

参考资料信息

CVE: CVE-2016-2384, CVE-2016-2543, CVE-2016-2544, CVE-2016-2545, CVE-2016-2547, CVE-2016-2548, CVE-2016-2549, CVE-2017-1000410, CVE-2017-17741, CVE-2018-1000199, CVE-2018-10323, CVE-2018-3665

IAVA: 2018-A-0196-S