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

high Nessus 插件 ID 108842

简介

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

描述

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

- Linux 内核 ALSA 子系统的 snd_pcm_info 函数中存在释放后使用漏洞,攻击者可利用此漏洞,通过不明向量,获取权限。(CVE-2017-0861)

- Linux 内核 2.6.32 及更高版本受到拒绝服务影响,攻击者可通过淹没诊断端口 0x80,触发异常,导致内核错误。(CVE-2017-1000407)

- 在 4.12 之前的 Linux 内核中,drivers/acpi/acpica/nsutils.c 的 acpi_ns_terminate() 函数未刷新操作数缓存并造成内核堆栈转储,本地用户可利用此漏洞,通过构建的 ACPI 表,从内核内存获取敏感信息并绕过 KASLR 保护机制(在内核 4.9 及之前版本中)。(CVE-2017-11472)

- 在网络命名空间代码中发现一个释放后使用漏洞,可影响低于 4.14.11 的 Linux 内核版本。net/core/net_namespace.c 中的 et_net_ns_by_id() 函数在 netns_ids idr 中发现对等网络之后未检查 net: : count 值,可能会导致双重释放和内存损坏。非特权本地用户可利用此漏洞,造成系统上的内核内存损坏,进而导致崩溃。鉴于此缺陷的本质,虽然不太可能进行权限提升,但无法完全排除这种可能。(CVE-2017-15129)

- 本地用户可利用 Linux 内核 4.13.4 之前版本中的 sound/core/seq_device.c,通过构建的 USB 设备造成拒绝服务(snd_rawmidi_dev_seq_free 释放后使用和系统崩溃)或者有可能造成其他不明影响。(CVE-2017-16528)

- 在 Linux 内核 4.13.11 及之前版本中,本地用户可利用 drivers/usb/misc/usbtest.c 中的 get_endpoints 函数,通过构建的 USB 设备,造成拒绝服务(空指针取消引用和系统崩溃),或可能造成其他不明影响。(CVE-2017-16532)

- 在 Linux 内核 4.13.11 及之前版本中,本地用户可利用 drivers/media/usb/cx231xx/cx231xx-cards.c 中的 cx231xx_usb_probe 函数,通过构建的 USB 设备,造成拒绝服务(空指针取消引用和系统崩溃),或可能造成其他不明影响。(CVE-2017-16536)

- 在 Linux 内核 4.13.11 及之前版本中,本地用户可利用 drivers/media/rc/imon.c 中的 imon_probe 函数,通过构建的 USB 设备,造成拒绝服务(空指针取消引用和系统崩溃),或可能造成其他不明影响。(CVE-2017-16537)

- 在 Linux 内核 4.13.11 及之前版本中,本地用户可利用 drivers/input/misc/ims-pcu.c 中的 ims_pcu_get_cdc_union_desc 函数,通过构建的 USB 设备,造成拒绝服务(ims_pcu_parse_cdc_data 越界读取和系统崩溃),或可能造成其他不明影响。(CVE-2017-16645)

- 在 Linux 内核 4.13.11 及之前版本中,本地用户可利用 drivers/media/usb/dvb-usb/dib0700_devices.c,通过构建的 USB 设备,造成拒绝服务(错误和系统崩溃),或可能造成其他不明影响。(CVE-2017-16646)

- 在 4.13.11 及之前的 Linux 内核中,drivers/net/usb/cdc_ether.c 的 usbnet_generic_cdc_bind 函数让本地用户能够通过构建的 USB 设备造成拒绝服务(除以零错误和系统崩溃)或可能产生其他不明影响。(CVE-2017-16649)

- 在 Linux 内核 4.13.11 及之前版本中,本地用户可利用 drivers/net/usb/qmi_wwan.c 中的 qmi_wwan_bind 函数,通过构建的 USB 设备,造成拒绝服务(除零错误和系统崩溃),或可能造成其他不明影响。(CVE-2017-16650)

- 在 4.14.8 和 4.4.114 之前的 Linux 内核中,vhci_hcd 驱动程序让本地攻击者可以泄露内核内存地址。成功利用漏洞需要通过 IP 连接 USB 设备。
(CVE-2017-16911)

- 在 4.14.8、4.9.71 和 4.4.114 之前的 Linux 内核中,get_pipe() 函数 (drivers/usb/usbip/stub_rx.c) 让攻击者可以通过特别构建的 USB over IP 数据包造成拒绝服务(越界读取)。(CVE-2017-16912)

- 在 4.14.8、4.9.71 和 4.4.114 之前的 Linux 内核中,处理 CMD_SUBMIT 数据包时,stub_recv_cmd_submit() 函数 (drivers/usb/usbip/stub_rx.c) 让攻击者可以通过特别构建的 USB over IP 数据包造成拒绝服务(越界读取)。(CVE-2017-16913)

- 在 4.14.8、4.9.71、4.1.49 和 4.4.107 之前的 Linux 内核中,stub_send_ret_submit() 函数 (drivers/usb/usbip/stub_tx.c) 让攻击者可以通过特别构建的 USB over IP 数据包造成拒绝服务(空指针取消引用)。(CVE-2017-16914)

- 在低于 4.14.2 的 Linux 内核版本中,mm/pagewalk.c 中的 walk_hugetlb_range 函数未正确处理 hugetlb 范围中的漏洞,本地用户可利用此漏洞,通过构建的 mincore() 系统调用,从未初始化内核内存获取敏感信息。(CVE-2017-16994)

- 在 4.4 及之前版本的 Linux 内核中,kernel/bpf/verifier.c 的 check_alu_op 函数允许本地用户通过利用错误的符号扩展造成拒绝服务(内存损坏)或其他不明影响。(CVE-2017-16995)

- 在 Linux 内核 4.14.4 及之前版本中,对于新增、获取和删除操作,net/netfilter/nfnetlink_cthelper.c 不需要使用 CAP_NET_ADMIN 功能,本地用户可利用此漏洞,绕过预期访问限制,这是跨所有网络命名空间共享 nfnl_cthelper_list 数据结构所致。
(CVE-2017-17448)

- 在 Linux 内核 4.14.4 及之前版本中,启用 CONFIG_NLMON 时,net/netlink/af_netlink.c 中的 __netlink_deliver_tap_skb 函数未限制单个 net 命名空间的 Netlink 消息监测,本地用户可利用此漏洞,通过使用 CAP_NET_ADMIN 功能探查到系统上所有 Netlink 活动的 nlmon 接口,进而获取敏感信息。(CVE-2017-17449)

- Linux 内核 4.14.4 及之前版本中的 net/netfilter/xt_osf.c 对于 add_callback 和 remove_callback 操作,不需要使用 CAP_NET_ADMIN 功能,进而允许本地用户绕过预定的访问限制,这是因为 xt_osf_fingers 数据结构是跨所有网络命名空间共享所致。
(CVE-2017-17450)

- 在 Linux 内核 4.14.5 及之前版本中,USB 核心子系统 drivers/usb/core/config.c 中的 usb_destroy_configuration 函数未先考虑配置和接口的最大数再尝试释放资源,本地用户可利用此漏洞,通过构建的 USB 设备,造成拒绝服务(越界写入访问),或可能造成其他不明影响。(CVE-2017-17558)

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

- 在低于 4.14.8 的 Linux 内核版本中,Salsa20 加密算法未正确处理零长度输入,本地攻击者可利用此漏洞,通过执行使用 blkcipher_walk API 的构建系统调用序列,使用 AF_ALG 式 skcipher 接口 (CONFIG_CRYPTO_USER_API_SKCIPHER) 造成拒绝服务(未初始化内存释放和内核崩溃),或造成其他不明影响。Salsa20 的通用实现 (crypto/salsa20_generic.c) 和 x86 实现 (arch/x86/crypto/salsa20_glue.c) 都容易受到影响。(CVE-2017-17805)

- 在低于 4.14.8 的 Linux 内核版本中,HMAC 实现 (crypto/hmac.c) 未验证底层加密哈希算法是否未加密,本地攻击者可利用此漏洞使用基于 AF_ALG 的哈希接口 (CONFIG_CRYPTO_USER_API_HASH) 和 SHA-3 哈希算法 (CONFIG_CRYPTO_SHA3),通过执行缺少 SHA-3 初始化的构建系统调用序列,造成内核堆栈缓冲区溢出。(CVE-2017-17806)

- 在通过 request_key() 系统调用将密钥添加至当前任务的默认请求密钥密匙环时,Linux 内核 4.14.6 之前版本的 KEYS 子系统省略了访问控制检查,本地用户可利用此问题,使用一系列构建的系统调用,向仅具有该密匙环搜索权限(而非写入权限)的密匙环添加密钥,此问题与 security/keys/request_key.c 中的 construct_get_dest_keyring() 有关。
(CVE-2017-17807)

- 在 4.14.8 及之前版本的 Linux 内核中,kernel/bpf/verifier.c 会忽略无法访问的代码,即使 JIT 编译器仍会处理这些代码。本地用户可能会利用这种行为(被认为是一种不当剪枝逻辑问题)造成拒绝服务。(CVE-2017-17862)

- 在 4.14.13 之前的 Linux 内核中,crypto/pcrypt.c 未正确处理释放实例,允许能够访问 AF_ALG 式 AEAD 接口 (CONFIG_CRYPTO_USER_API_AEAD) 和 pcrypt (CONFIG_CRYPTO_PCRYPT) 的本地用户通过执行特制系统调用序列,造成拒绝服务(不正确指针的 kfree)或者其他不明影响。(CVE-2017-18075)

- 在低于 4.14.3 的 Linux 内核版本中,本地用户可利用 drivers/md/dm.c 中的 dm_get_from_kobject 函数,通过在创建和删除 DM 设备期间使用 __dm_destroy 争用条件,造成拒绝服务(错误)。(CVE-2017-18203)

- 在低于 4.14.2 的 Linux 内核版本中,本地用户可利用 fs/ocfs2/file.c 中的 ocfs2_setattr 函数, 通过 DIO 请求,造成拒绝服务(死锁)。(CVE-2017-18204)

- 在低于 4.14.4 的 Linux 内核版本中,本地用户可利用 mm/madvise.c 中的 madvise_willneed 函数,通过触发使用 MADVISE_WILLNEED 进行 DAX 映射,造成拒绝服务(无限循环)。
(CVE-2017-18208)

- 在低于 4.12 的 Linux 内核版本中,当模拟 syscall 指令时,在 KVM 模块于 EFLAGS 中处理陷阱标记 (TF) 位的方式中发现一个缺陷,可导致客户机堆栈中发生调试异常 (#DB)。客户机中的用户/进程可能会利用此缺陷,提升客户机中的权限。Linux 客户机未受此漏洞影响。(CVE-2017-7518)

- 在 Linux 内核 v4.8(可能低于 v4.8)及更高版本中,bnx2x 网卡驱动程序中存在未充分验证输入漏洞,可导致拒绝服务:网卡固件断言造成网卡脱机。攻击者必须将特别构建的巨大数据包传递至 bnx2x 网卡,才可利用此攻击。为此,需使用不受信任的客户机 VM。
(CVE-2018-1000026)

- 在 Linux 内核 3.2 及之前版本中,rds_message_alloc_sgs() 函数未验证 DMA 页面分配期间使用的值,导致基于堆的越界写入(与 net/rds/rdma.c 中的 rds_rdma_extra_size 函数相关)。(CVE-2018-5332)

- 在 Linux 内核 4.14.13 及之前版本中,net/rds/rdma.c 中的 rds_cmsg_atomic 函数未正确处理页面锁定失败或提供地址无效的情况,导致 rds_atomic_free_op 空指针取消引用。(CVE-2018-5333)

- 在 Linux 内核 4.14.13 及之前版本中,drivers/block/loop.c 未正确处理 lo_release 序列化,攻击者可利用此漏洞,造成拒绝服务(__lock_acquire 释放后使用),或可能造成其他不明影响。(CVE-2018-5344)

- 在低于 4.14.15 的 Linux 内核版本中,攻击者可利用 kernel/futex.c 中的 futex_requeue 函数,通过触发负唤醒或重新排队值,造成拒绝服务(整数溢出),或可能造成其他不明影响。(CVE-2018-6927)

- 在低于 4.14.7 的 Linux 内核版本中,net/rds/rdma.c 的 __rds_rdma_map() 函数中存在空指针取消引用,本地攻击者可利用此漏洞,造成系统错误和拒绝服务,此问题与 RDS_GET_MR 和 RDS_GET_MR_FOR_DEST 相关。(CVE-2018-7492)

- 在 Linux 内核 4.15.8 及之前的版本中,drivers/net/phy/mdio-bcm-unimac.c 的 unimac_mdio_probe 函数未验证特定的资源可用性,使本地用户能够造成拒绝服务(空指针取消引用)。(CVE-2018-8043)

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

解决方案

更新受影响的 kernel 程序包。

另见

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

插件详情

严重性: High

ID: 108842

文件名: ubuntu_USN-3619-1.nasl

版本: 1.15

类型: local

代理: unix

发布时间: 2018/4/5

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

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

风险信息

VPR

风险因素: Critical

分数: 9.7

CVSS v2

风险因素: High

基本分数: 7.2

时间分数: 6.3

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

CVSS 分数来源: CVE-2018-5332

CVSS v3

风险因素: High

基本分数: 7.8

时间分数: 7.5

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

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

CVSS 分数来源: CVE-2018-6927

漏洞信息

CPE: p-cpe:/a:canonical:ubuntu_linux:linux-image-4.4.0-1020-kvm, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.4.0-1054-aws, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.4.0-1086-raspi2, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.4.0-1088-snapdragon, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.4.0-119-generic, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.4.0-119-generic-lpae, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.4.0-119-lowlatency, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.4.0-119-powerpc-e500mc, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.4.0-119-powerpc-smp, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.4.0-119-powerpc64-emb, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.4.0-119-powerpc64-smp, cpe:/o:canonical:ubuntu_linux:16.04:-:lts

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

可利用: true

易利用性: Exploits are available

补丁发布日期: 2018/4/4

漏洞发布日期: 2017/7/20

可利用的方式

Core Impact

Metasploit (Linux BPF Sign Extension Local Privilege Escalation)

参考资料信息

CVE: CVE-2017-0861, CVE-2017-1000407, CVE-2017-11472, CVE-2017-15129, CVE-2017-16528, CVE-2017-16532, CVE-2017-16536, CVE-2017-16537, CVE-2017-16645, CVE-2017-16646, CVE-2017-16649, CVE-2017-16650, CVE-2017-16911, CVE-2017-16912, CVE-2017-16913, CVE-2017-16914, CVE-2017-16994, CVE-2017-16995, CVE-2017-17448, CVE-2017-17449, CVE-2017-17450, CVE-2017-17558, CVE-2017-17741, CVE-2017-17805, CVE-2017-17806, CVE-2017-17807, CVE-2017-17862, CVE-2017-18075, CVE-2017-18203, CVE-2017-18204, CVE-2017-18208, CVE-2017-7518, CVE-2018-1000026, CVE-2018-5332, CVE-2018-5333, CVE-2018-5344, CVE-2018-6927, CVE-2018-7492, CVE-2018-8043

USN: 3619-1