Oracle Linux 7:内核 (ELSA-2017-1842)

high Nessus 插件 ID 102281

简介

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

描述

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

- 在 3.17 及之前的 Linux 内核中,fs/namespace.c 中的 do_umount 函数未要求将根文件系统更改为只读的 do_remount_sb 调用的 CAP_SYS_ADMIN 功能,这允许本地用户通过进行某些 unshare 系统调用、清除 / MNT_LOCKED 标记和进行 MNT_FORCE umount 系统调用来造成拒绝服务(丧失可写性)。(CVE-2014-7975)

- 启用 GNU Compiler Collection (gcc) 堆栈保护程序时,在 4.8.2 及之前的 Linux 内核中,security/keys/proc.c 中的 proc_keys_show 函数在处理某些超时数据使用错误的缓冲区大小,这允许本地用户造成通过读取 /proc/keys 文件造成拒绝服务(堆栈内存损坏和错误)。 (CVE-2016-7042)

- 在 4.6.3 之前的 Linux 内核中,net/netlink/af_netlink.c 的 netlink_dump 函数中存在争用条件,允许本地用户通过构建的应用程序发出 sendmsg 系统调用(导致与早于预期启动的新转储相关的释放操作),造成拒绝服务(双重释放)或可能造成其他不明影响。 (CVE-2016-9806)

- 在 4.8.14 之前的 Linux 内核中,block/blk-map.c 中的 blk_rq_map_user_iov 函数未正确限制迭代器类型,这会导致本地用户可利用对 /dev/sg 设备的访问权限,来读取或写入任意内核内存位置,或造成拒绝服务(释放后使用)。
(CVE-2016-9576)

- 在 Linux 内核 4.9 及之前版本中,sg 实现在设定 KERNEL_DS 选项的情况下,未正确限制写入操作,本地用户可利用此漏洞,通过使用对 /dev/sg 设备的访问权限,在任意内核内存位置读取或写入,或者造成拒绝服务(释放后使用),此问题与 block/bsg.c 和 drivers/scsi/sg.c 相关。注意:存在此漏洞的原因是未完整修复 CVE-2016-9576。(CVE-2016-10088)

- 在 Linux 内核 4.8.2 及之前版本中,文件系统实现在 setxattr 调用过程中保留了 setgid 位,本地用户可利用此漏洞,通过使用存在的具有执行权限限制的 setgid 程序,获取群组权限。(CVE-2016-7097)

- 在 Linux 内核 4.10.4 及之前版本中,本地用户可利用 drivers/scsi/sg.c 中的 sg_ioctl 函数,通过 SG_NEXT_CMD_LEN ioctl 调用中的大型命令,造成拒绝服务(基于堆栈的缓冲区溢出),或可能造成其他不明影响,进而导致 sg_write 函数存在越界写入访问漏洞。(CVE-2017-7187)

- 在低于 4.8.15 的 Linux 内核版本中,本地用户可利用 crypto/mcryptd.c,通过使用算法不兼容的 AF_ALG 套接字,造成拒绝服务(空指针取消引用和系统崩溃),mcryptd(md5) 即为一例。(CVE-2016-10147)

- 在 Linux 内核 4.9 及之前版本中,arch/x86/kvm/vmx.c 未能正确管理 #BP 和 #OF 异常,客户机操作系统用户可利用此漏洞,通过拒绝处理 L2 客户机抛出的异常,造成拒绝服务(客户机操作系统崩溃)。(CVE-2016-9588)

- 在 Linux 内核 4.9.8 及之前版本中,arch/x86/kvm/vmx.c 中的 nested_vmx_check_vmptr 函数未正确模拟 VMXON 指令,KVM L1 客户机操作系统用户可利用此漏洞,通过不当处理页面引用,造成拒绝服务(主机操作系统内存消耗)。(CVE-2017-2596)

- 在低于 4.8.10 的 Linux 内核版本中,TCP 堆栈未正确处理 skb 截断,本地用户可利用此漏洞,通过构建的进行 sendto 系统调用的应用程序,造成拒绝服务(系统崩溃),此问题与 net/ipv4/tcp_ipv4.c 和 net/ipv6/tcp_ipv6.c 相关。(CVE-2016-8645)

- 在 Linux 内核 4.9.9 及之前版本中,攻击者可利用 net/ipv4/ip_sockglue.c 中的 ipv4_pktinfo_prepare 函数,通过 (1) 调用构建系统的应用程序或可能通过 (2) IP 选项无效的 IPv4 流量,造成拒绝服务(系统崩溃)。(CVE-2017-5970)

- 在低于 4.9.7 的 Linux 内核版本中,本地用户可利用 kernel/events/core.c 中的争用条件,通过构建的应用程序进行并发 perf_event_open 系统调用,将软件组移至硬件环境,从而获取权限。注意:存在此漏洞的原因是未完整修复 CVE-2016-6786。(CVE-2017-6001)

- 在低于 3.18 的 Linux 内核版本中,本地用户可利用 KEYS 子系统,通过涉及特定匹配字段空值的向量,获取权限,或造成拒绝服务(空指针取消引用和系统崩溃),此问题与 keyring.c 中的 keyring_search_iterator 函数相关。(CVE-2017-2647)

- 在 Linux 内核 4.10.15 及之前版本中,攻击者可利用 net/ipv4/inet_connection_sock.c 中的 inet_csk_clone_lock 函数,通过使用接受系统调用,造成拒绝服务(双重释放),或可能造成其他不明影响。(CVE-2017-8890)

- 在 Linux 内核 4.11.1 及之前版本中,net/ipv6/tcp_ipv6.c 中的 tcp_v6_syn_recv_sock 函数未正确处理继承,本地用户可利用此漏洞,通过构建的系统调用,造成拒绝服务,或可能造成其他不明影响,此问题与 CVE-2017-8890 相关。(CVE-2017-9077)

- 在 3.17 及之前的 Linux 内核中,fs/namespace.c 中的 pivot_root 实现未正确与 chroot 目录的某些位置进行交互,从而允许本地用户通过系统调用 pivot_root 的两个参数中的 .(点)值造成拒绝服务(mount-tree 循环)。
(CVE-2014-7970)

- 在 4.4.2 之前的 Linux 内核中,crypto/algif_skcipher.c 未在处理接受系统调用之前验证是否已在 AF_ALG 套接字上执行 setkey 操作,这允许本地用户通过不提供密钥的构建应用程序造成拒绝服务(空指针取消引用和系统崩溃),此问题与 crypto/lrw.c 中的 lrw_crypt 函数有关。(CVE-2015-8970)

- 在低于 4.8.14 的 Linux 内核版本中,L2TPv3 IP 封装功能中存在争用条件,本地用户可利用此漏洞,在未正确确定套接字是否具有 SOCK_ZAPPED 状态的情况下,通过执行多次 bind 系统调用,获取权限,或造成拒绝服务(释放后使用),此问题与 net/l2tp/l2tp_ip.c 和 net/l2tp/l2tp_ip6.c 相关。(CVE-2016-10200)

- 在低于 4.9 的 Linux 内核版本中,fs/namespace.c 未限制安装命名空间中可容纳的安装数量,本地用户可利用此漏洞,通过 MS_BIND 安装系统调用,造成拒绝服务(内存消耗和死锁),触发安装数量指数增长的循环即为一例。(CVE-2016-6213)

- 在低于 4.11-rc8 的 Linux 内核版本中发现漏洞,根用户通过以会话密钥环形式加入内部密钥环,即可获取内部密钥环的直接访问权限,如 RHEL-7 或“.builtin_trusted_keys”上游中的“.dns_resolver”。根用户可利用此漏洞,通过在密钥环中添加自设计的新公钥,绕过模块签名验证。(CVE-2016-9604)

- 在 4.10.8 及之前的 Linux 内核中,net/ipv4/ping.c 中的 ping_unhash 函数在获取特定锁定出现延迟,因此无法确保断开连接函数调用的安全性,这允许本地用户利用套接字系统调用中 IPPROTO_ICMP 协议值的访问权限造成拒绝服务(错误)。(CVE-2017-2671)

- 在 3.14.79 及之前的 Linux 内核中,security/keys/keyring.c 的 keyring_search_aux 函数允许本地用户通过死类型的 request_key 系统调用造成拒绝服务(空指针取消引用和 OOPS)。(CVE-2017-6951)

- 在 4.10.9 及之前的 Linux 内核中,在 mm/mempolicy.c 的 set_mempolicy() 和 mbind() compat 系统调用中,不正确的错误处理允许本地用户通过触发特定位图操作失败,从未初始化的堆栈数据获取敏感信息。(CVE-2017-7616)

- 在 3.2 及之前的 Linux 内核中,mm 子系统未正确执行 CONFIG_STRICT_DEVMEM 保护机制,这使得本地用户能够通过与 arch/x86/mm/init.c 和 drivers/char/mem.c 相关的能够打开 /dev/mem 文件的应用程序读取或写入第一个兆字节中的内核内存位置(并绕过 slab-allocation 访问权限限制)。(CVE-2017-7889)

- 在 4.11.1 及之前的 Linux 内核中,IPv6 碎片实现未考虑 nexthdr 字段可能与无效选项相关联,从而允许本地用户造成拒绝服务(越界读取和漏洞),或可能会通过经构建的套接字产生其他不明影响,或发送系统调用。(CVE-2017-9074)

- 在 4.11.1 及之前的 Linux 内核的 net/dccp/ipv6.c 中,dccp_v6_request_recv_sock 函数未正确处理继承,进而允许本地用户通过特制的系统调用,造成拒绝服务,或可能造成其他不明影响,此问题可能与 CVE-2017-8890 有关。(CVE-2017-9076)

- 在 Linux 内核 4.11.3 及之前版本中,net/ipv6/ip6_output.c 中的 __ip6_append_data 函数过晚检查是否可覆盖 skb 数据结构,本地用户可利用此漏洞,通过构建的系统调用,造成拒绝服务(系统崩溃)。(CVE-2017-9242)

- 在 4.5 之前的 Linux 内核中,ext4 文件系统实现中存在多个争用条件,本地用户可利用此缺陷,通过处理未同步穿孔和页面错误后写入与不同用户文件相关联的页面,造成拒绝服务(磁盘损坏)。(CVE-2015-8839)

- 在低于 4.5.1 的 Linux 内核版本中,fs/xfs/xfs_attr_list.c 中的错误路径中存在多个内存泄漏,本地用户可利用这些漏洞,通过构建的 XFS 文件系统操作,造成拒绝服务(内存消耗)。
(CVE-2016-9685)

- 在 4.11.3 之前的 Linux 内核中,NFSv4 服务器在处理来自远程攻击者的 UDP 数据包中的 NFSv4 pNFS GETDEVICEINFO 或 GETDEVICEINFO 操作数时,未正确验证布局类型。此类型值在遇到某些错误条件时未进行初始化。此值会用作取消引用的数组索引,进而导致 OOPS 并最终导致 knfsd 的 DoS 以及整个系统的软锁定。(CVE-2017-8797)

- 在 4.11.1 及之前的 Linux 内核的 net/sctp/ipv6.c 中,sctp_v6_create_accept_sk 函数未正确处理继承,进而允许本地用户通过特制的系统调用,造成拒绝服务,或可能造成其他不明影响,这是与 CVE-2017-8890 相关的问题。(CVE-2017-9075)

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

解决方案

更新受影响的程序包。

另见

https://linux.oracle.com/errata/ELSA-2017-1842.html

插件详情

严重性: High

ID: 102281

文件名: oraclelinux_ELSA-2017-1842.nasl

版本: 3.16

类型: local

代理: unix

发布时间: 2017/8/9

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

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

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: High

基本分数: 7.8

时间分数: 6.1

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

CVSS 分数来源: CVE-2017-6001

CVSS v3

风险因素: High

基本分数: 7.8

时间分数: 7

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

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

漏洞信息

CPE: cpe:/o:oracle:linux:7, p-cpe:/a:oracle:linux:kernel, p-cpe:/a:oracle:linux:kernel-abi-whitelists, p-cpe:/a:oracle:linux:kernel-debug, p-cpe:/a:oracle:linux:kernel-debug-devel, p-cpe:/a:oracle:linux:kernel-devel, p-cpe:/a:oracle:linux:kernel-headers, p-cpe:/a:oracle:linux:kernel-tools, p-cpe:/a:oracle:linux:kernel-tools-libs, p-cpe:/a:oracle:linux:kernel-tools-libs-devel, p-cpe:/a:oracle:linux:perf, p-cpe:/a:oracle:linux:python-perf

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

可利用: true

易利用性: Exploits are available

补丁发布日期: 2017/8/7

漏洞发布日期: 2014/10/8

参考资料信息

CVE: CVE-2014-7970, CVE-2014-7975, CVE-2015-8839, CVE-2015-8970, CVE-2016-10088, CVE-2016-10147, CVE-2016-10200, CVE-2016-10741, CVE-2016-6213, CVE-2016-7042, CVE-2016-7097, CVE-2016-8645, CVE-2016-9576, CVE-2016-9588, CVE-2016-9604, CVE-2016-9685, CVE-2016-9806, CVE-2017-1000379, CVE-2017-2584, CVE-2017-2596, CVE-2017-2647, CVE-2017-2671, CVE-2017-5551, CVE-2017-5970, CVE-2017-6001, CVE-2017-6951, CVE-2017-7187, CVE-2017-7495, CVE-2017-7616, CVE-2017-7889, CVE-2017-8797, CVE-2017-8890, CVE-2017-9074, CVE-2017-9075, CVE-2017-9076, CVE-2017-9077, CVE-2017-9242

RHSA: 2017:1842