Ubuntu 16.04 LTS:Linux 内核 (HWE) 漏洞 (USN-3361-1)

critical Nessus 插件 ID 101929

简介

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

描述

远程 Ubuntu 16.04 LTS 主机上安装的一个程序包受到 USN-3361-1 公告中提及的多个漏洞影响。

- Linux 内核 3.x 中的 VFS 子系统为 setattr 操作提供了一组不完整的要求,其未充分说明删除扩展权限属性,从而使得本地用户对系统调用的失败调用造成拒绝服务(功能剥离),使用 chown 删除 ping 或 Wireshark dumpcap 程序中的功能即为一例。(CVE-2015-1350)

- 在 Linux 内核 4.9.8 及之前版本中,fs/ext4/super.c 中的 ext4_fill_super 函数未正确验证元块组,物理邻近攻击者可利用此漏洞,通过构建的 ext4 图像,造成拒绝服务(越界读取和系统崩溃)。(CVE-2016-10208)

- 内核组件(包括 ION 子系统、Binder、USB 驱动程序和网络子系统)中存在信息泄露漏洞,可让本地恶意应用程序访问其权限级别之外的数据。我们将此问题评定为中危,因为其首先要求入侵有权限的进程。产品:Android。版本:Kernel-3.10、Kernel-3.18。Android ID:A-31651010。(CVE-2016-8405)

- 在 4.9.10 之前的 Linux 内核中,drivers/infiniband/sw/rxe/rxe_mr.c 的 mem_check_range 函数存在整数溢出漏洞,导致本地用户可以通过涉及基于 InfiniBand 的 RDMA 协议(又称为 Soft RoCE)技术的写入或读取请求,造成拒绝服务(内存损坏)、从内核内存获取敏感信息或者造成其他不明影响。(CVE-2016-8636)

- 在 4.8.11 及之前的 Linux 内核中,drivers/vfio/pci/vfio_pci.c 允许本地用户通过利用对 VFIO_DEVICE_SET_IRQS ioctl 调用的 vfio PCI 设备的访问权限(亦称状态机混淆缺陷)绕过整数溢出检查,并造成拒绝服务(内存损坏)或其他不明影响。(CVE-2016-9083)

- 在 4.8.11 及之前的 Linux 内核的 drivers/vfio/pci/vfio_pci_intrs.c 滥用 kzalloc 函数,这允许本地用户通过利用对 vfio PCI 设备文件的访问权限造成拒绝服务(整数溢出)或其他不明影响。(CVE-2016-9084)

- 在 Linux 内核 4.8.11 及之前版本中,cgroup 离线实现未正确处理某些耗尽操作,本地用户可利用此漏洞,通过访问执行构建应用程序的容器环境,造成拒绝服务(系统挂起),trinity 即为一例。(CVE-2016-9191)

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

- 在 4.9 之前的 Linux 内核中,netfilter 子系统未正确处理 IPv6 重组,导致本地用户可以通过构建的应用程序(可进行 socket、connect 和 writev 系统调用),造成拒绝服务(整数溢出、越界写入和 GPF),或者造成其他不明影响,此问题与 net/ipv6/netfilter/nf_conntrack_reasm.c 和 net/ipv6/netfilter/nf_defrag_ipv6_hooks.c。
(CVE-2016-9755)

- 在低于 4.9.5 的 Linux 内核版本中,arch/x86/kvm/emulate.c 中的 load_segment_descriptor 实现未正确模拟“MOV SS,空选择器”指令,客户机操作系统用户可利用此漏洞,通过构建的应用程序,造成拒绝服务(客户机操作系统崩溃),或者获取客户机操作系统权限。(CVE-2017-2583)

- 在 4.9.3 及之前版本的 Linux 内核中,arch/x86/kvm/emulate.c 允许本地用户通过构建的应用程序(利用指令模拟 fxrstor、fxsave、sgdt 和 sidt),从内核内存获取敏感信息或造成拒绝服务(释放后使用)。(CVE-2017-2584)

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

- 在 4.9.10 之前的 Linux 内核中,在处理清除 /proc/pid/attr 文件内 SELinux 属性的方式时发现缺陷。针对此文件的空写入,这会使系统尝试访问非映射的内核内存,从而导致系统崩溃。(CVE-2017-2618)

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

- 在 4.8.x 及 4.9.x 至 4.9.5 的 Linux 内核中,mm/slab.c 中的 freelist-randomization 功能允许本地用户通过选择较大值的随机数,造成拒绝服务(复制自由列表条目和系统崩溃),或者造成其他不明影响(在有机会的情况下)。(CVE-2017-5546)

- 在 4.9.5 之前的 Linux 内核中,drivers/usb/serial/kl5kusb105.c 的 klsi_105_get_line_state 函数在读取行状态失败时将未初始化的堆内存内容放入日志条目中,导致本地用户可以通过读取日志获取敏感信息。(CVE-2017-5549)

- 在 4.9.5 之前的 Linux 内核中,lib/iov_iter.c 的 pipe_advance 函数中存在差一错误,允许本地用户通过在错误缓冲区释放决定之后从管道读取,在有机会的情况下,从未初始化的堆内存位置获取敏感信息。(CVE-2017-5550)

- 在 4.9.6 之前的 Linux 内核中,fs/posix_acl.c 的 simple_set_acl 函数在涉及 tmpfs 文件系统的 setxattr 调用过程中保留了 setgid 位,本地用户可利用此漏洞,通过使用存在的具有执行权限限制的 setgid 程序,获取群组权限。注意:存在此漏洞的原因是未完整修复 CVE-2016-7097。(CVE-2017-5551)

- 在 4.9.7 之前的 Linux 内核中,VideoCore DRM 驱动程序中的 drivers/gpu/drm/vc4/vc4_gem.c 的 vc4_get_bcl 函数存在整数溢出漏洞,允许本地用户通过 VC4_SUBMIT_CL ioctl 调用中构建的大小值造成拒绝服务,或者造成其他不明影响。(CVE-2017-5576)

- 在 Linux 内核 4.9.12 及之前版本中,ipc/shm.c 中的 do_shmat 函数未限制特定舍入操作所计算的地址,本地用户可利用此漏洞,通过在特权环境中执行构建的 shmget 和 shmat 系统调用,映射零页面,从而绕过用于 mmap 系统调用的保护机制。(CVE-2017-5669)

- 在 Linux 内核中,远程攻击者可利用 net/ipv6/ip6_gre.c 中的 ip6gre_err 函数,通过涉及 IPv6 数据包中 GRE 标记的向量触发越界访问,造成不明影响。(CVE-2017-5897)

- 在 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)

- 在低于 4.9.11 的 Linux 内核版本中,远程攻击者可利用 net/ipv4/tcp.c 中的 tcp_splice_read 函数,通过涉及带有 URG 标记的 TCP 数据包的向量,造成拒绝服务(无限循环和软锁定)。(CVE-2017-6214)

- 在低于 4.9.13 的 Linux 内核版本中,LLC 子系统未确保在所需情况下提供特定析构函数,本地用户可利用此漏洞,通过构建的系统调用,造成拒绝服务 (BUG_ON),或可能造成其他不明影响。(CVE-2017-6345)

- 在 4.9.13 之前的 Linux 内核中,net/packet/af_packet.c 内存在争用条件,这使得本地用户能够通过进行 PACKET_FANOUT setsockopt 系统调用的多线程应用程序,从而造成拒绝服务(释放后使用),或者可能造成其他不明影响。(CVE-2017-6346)

- 在低于 4.10.1 的 Linux 内核版本中,net/ipv4/ip_sockglue.c 中的 ip_cmsg_recv_checksum 函数中存在不当 skb 数据布局预期,本地用户可利用此漏洞,通过构建的系统调用,造成拒绝服务(缓冲区过度读取),或可能造成其他不明影响,结合环回 UDP 传输使用 MSG_MORE 标记即为一例。(CVE-2017-6347)

- 在 4.9.13 之前的 Linux 内核中,net/irda/irqueue.c 中的 hashbin_delete 函数管理锁定终止不当,导致本地用户可以通过在 IrDA 设备构建操作造成拒绝服务(死锁)。(CVE-2017-6348)

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

- 在 Linux 内核 4.10.5 及之前版本中,drivers/gpu/drm/vmwgfx/vmwgfx_surface.c 中的 vmw_surface_define_ioctl 函数未检查某些层级数据的零值,本地用户可利用此漏洞,通过对 /dev/dri/renderD* 设备构建的 ioctl 调用,造成拒绝服务(ZERO_SIZE_PTR 取消引用以及 GPF 和潜在错误)。(CVE-2017-7261)

- 在低于 4.9.4 的 Linux 内核 3.2 和 4.x 版本中,物理邻近攻击者可利用 drivers/hid/hid-cypress.c 中的 cp_report_fixup 函数,通过构建的 HID 报告,造成拒绝服务(整数下溢),或可能造成其他不明影响。(CVE-2017-7273)

- 在低于 4.10.13 的 Linux 内核版本中,本地用户可利用 KEYS 子系统,通过一系列 KEY_REQKEY_DEFL_THREAD_KEYRING keyctl_set_reqkey_keyring 调用,造成拒绝服务(内存消耗)。
(CVE-2017-7472)

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

- 在 Linux 内核 4.10.9 及之前版本中,攻击者可利用 crypto/ahash.c,通过在完整队列中触发 EBUSY,造成拒绝服务(调用自己回调的 API 操作和无限递归)。
(CVE-2017-7618)

- 在 Linux 内核 4.10.11 及之前版本中,远程攻击者可利用 nfsd 子系统中的 NFSv2/NFSv3 服务器,通过长 RPC 回复,造成拒绝服务(系统崩溃),此问题与 net/sunrpc/svc.c、fs/nfsd/nfs3xdr.c 和 fs/nfsd/nfsxdr.c 相关。(CVE-2017-7645)

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

- 在 Linux 内核 4.10.13 及之前版本中,NFSv2 和 NFSv3 服务器实现缺少特定的缓冲区末尾检查,远程攻击者可利用此漏洞,通过构建的请求,触发指针运算错误,或可能造成其他不明影响,此问题与 fs/nfsd/nfs3xdr.c 和 fs/nfsd/nfsxdr.c 相关。
(CVE-2017-7895)

- 本地用户可利用 Linux 内核 4.10.4 之前版本的 drivers/usb/serial/io_ti.c 中的 edge_bulk_in_callback 函数,通过使用构建的 USB 设备(冒充 io_ti USB 串行设备)获取未初始化内核内存中的敏感信息(在 dmesg 环形缓冲区和 syslog 中),从而触发整数下溢。(CVE-2017-8924)

- 本地用户可利用 Linux 内核 4.10.4 之前版本的 drivers/usb/serial/omninet.c 中的 omninet_open 函数,通过利用引用计数处理不当造成拒绝服务(tty 耗尽)。
(CVE-2017-8925)

- 在 4.11.1 之前的 Linux 内核中,kernel/bpf/verifier.c 中的 do_check 函数没有使 allow_ptr_leaks 值可用于限制 print_bpf_insn 函数的输出,导致本地用户可以通过构建的 bpf 系统调用获取敏感地址信息。(CVE-2017-9150)

请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。

解决方案

更新受影响的 kernel 程序包。

另见

https://ubuntu.com/security/notices/USN-3361-1

插件详情

严重性: Critical

ID: 101929

文件名: ubuntu_USN-3361-1.nasl

版本: 3.9

类型: local

代理: unix

发布时间: 2017/7/24

最近更新时间: 2024/1/9

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

风险信息

VPR

风险因素: Medium

分数: 6.7

CVSS v2

风险因素: Critical

基本分数: 10

时间分数: 7.8

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

CVSS 分数来源: CVE-2017-7895

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 8.8

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

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

漏洞信息

CPE: p-cpe:/a:canonical:ubuntu_linux:linux-image-4.10.0-27-generic, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.10.0-27-generic-lpae, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.10.0-27-lowlatency, cpe:/o:canonical:ubuntu_linux:16.04:-:lts

必需的 KB 项: Host/cpu, Host/Debian/dpkg-l, Host/Ubuntu, Host/Ubuntu/release

可利用: true

易利用性: Exploits are available

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

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

参考资料信息

CVE: CVE-2015-1350, CVE-2016-10208, CVE-2016-8405, CVE-2016-8636, CVE-2016-9083, CVE-2016-9084, CVE-2016-9191, CVE-2016-9604, CVE-2016-9755, CVE-2017-2583, CVE-2017-2584, CVE-2017-2596, CVE-2017-2618, CVE-2017-2671, CVE-2017-5546, CVE-2017-5549, CVE-2017-5550, CVE-2017-5551, CVE-2017-5576, CVE-2017-5669, CVE-2017-5897, CVE-2017-5970, CVE-2017-6001, CVE-2017-6214, CVE-2017-6345, CVE-2017-6346, CVE-2017-6347, CVE-2017-6348, CVE-2017-7187, CVE-2017-7261, CVE-2017-7273, CVE-2017-7472, CVE-2017-7616, CVE-2017-7618, CVE-2017-7645, CVE-2017-7889, CVE-2017-7895, CVE-2017-8924, CVE-2017-8925, CVE-2017-9150

USN: 3361-1