Ubuntu 14.04 LTS:Linux 内核漏洞 (USN-3754-1)

critical Nessus 插件 ID 112113

简介

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

描述

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

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

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

- 在 Linux 内核 3.2 及之前版本中,arch/x86/kernel/acpi/boot.c 中的 mp_override_legacy_irq() 函数中存在缓冲区溢出,本地用户可利用此漏洞,通过构建的 ACPI 表格,取得权限。(CVE-2017-11473)

- 在低于 4.13.4 的 Linux 内核版本中,本地用户可利用 drivers/scsi/sg.c 中的 sg_ioctl 函数,通过 /dev/sg0 中的 SG_GET_REQUEST_TABLE ioctl 调用,从未初始化的内核堆内存位置获取敏感信息。(CVE-2017-14991)

- 在低于 4.13.6 的 Linux 内核版本中,本地用户可利用 net/packet/af_packet.c,通过构建的触发 packet_fanout 数据结构不当处理的系统调用,获取权限,这是导致释放后使用的争用条件(涉及 fanout_add 和 packet_do_bind)所致,此漏洞与 CVE-2017-6346 不同。(CVE-2017-15649)

- 在低于 4.13.6 的 Linux 内核版本中,本地用户可利用 drivers/uwb/uwbd.c,通过构建的 USB 设备,造成拒绝服务(一般保护错误和系统崩溃),或可能造成其他不明影响。(CVE-2017-16526)

- 在低于 4.13.8 的 Linux 内核版本中,本地用户可利用 sound/usb/mixer.c,通过构建的 USB 设备,造成拒绝服务(snd_usb_mixer_interrupt 释放后使用和系统崩溃),或可能造成其他不明影响。(CVE-2017-16527)

- 在低于 4.13.6 的 Linux 内核版本中,本地用户可利用 sound/usb/card.c 中的 snd_usb_create_streams 函数,通过构建的 USB 设备,造成拒绝服务(越界读取和系统崩溃),或可能造成其他不明影响。(CVE-2017-16529)

- 在低于 4.13.6 的 Linux 内核版本中,本地用户可利用 drivers/usb/core/config.c,通过构建的 USB 设备,造成拒绝服务(越界读取和系统崩溃),或可能造成其他不明影响,此问题与 USB_DT_INTERFACE_ASSOCIATION 描述符相关。(CVE-2017-16531)

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

- 在低于 4.13.8 的 Linux 内核版本中,本地用户可利用 drivers/hid/usbhid/hid-core.c 中的 usbhid_parse 函数,通过构建的 USB 设备,造成拒绝服务(越界读取和系统崩溃),或可能造成其他不明影响。(CVE-2017-16533)

- 在低于 4.13.10 的 Linux 内核版本中,本地用户可利用 drivers/usb/core/config.c 中的 usb_get_bos_descriptor 函数,通过构建的 USB 设备,造成拒绝服务(越界读取和系统崩溃),或可能造成其他不明影响。(CVE-2017-16535)

- 在 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/media/usb/dvb-usb-v2/lmedm04.c,通过构建的 USB 设备,造成拒绝服务(一般保护错误和系统崩溃),或可能造成其他不明影响,此问题与缺少热启动检查和连接时序错误(dm04_lme2510_frontend_attach 和 dm04_lme2510_tuner)相关。(CVE-2017-16538)

- 在低于 4.13.11 的 Linux 内核版本中,本地用户可利用 drivers/input/tablet/gtco.c 中的 parse_hid_report_descriptor 函数,通过构建的 USB 设备,造成拒绝服务(越界读取和系统崩溃),或可能造成其他不明影响。(CVE-2017-16643)

在 Linux 内核 4.13.11 及之前的版本中,drivers/media/usb/hdpvr/hdpvr-core.c 内的 hdpvr_probe 函数使本地用户能够通过构建的 USB 设备造成拒绝服务(不当错误处理和系统崩溃)或者有可能造成其他不明影响。(CVE-2017-16644)

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

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

- 在 4.11 之前的 Linux 内核中,kernel/events/core.c 的 perf_cpu_time_max_percent_handler 函数让本地用户可以通过较大的值造成拒绝服务(整数溢出)或其他不明影响,sample-rate 计算错误即为一例。(CVE-2017-18255)

- 在版本低于 4.13.5 的 Linux 内核中,本地用户可通过 keyctl 命令为其他用户创建 keyring,从而设置不需要的默认值,或造成拒绝服务。(CVE-2017-18270)

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

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

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

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

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

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

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

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

- 在 Linux 内核 4.11.5 及之前版本中,本地用户可利用 drivers/media/pci/saa7164/saa7164-bus.c 中的 saa7164_bus_get 函数,通过更改特定序列号值,造成拒绝服务(越界数组访问),或可能造成其他不明影响,亦即双重读取漏洞。
(CVE-2017-8831)

- 在 4.11.7 及之前的 Linux 内核中,sound/isa/msnd/msnd_pinnacle.c 的 snd_msnd_interrupt 函数允许本地用户通过在两次内核读取消息队列头指针的值之间更改该值,从而造成拒绝服务(越界访问)或其他不明影响,也称为双重提取漏洞。(CVE-2017-9984)

- 在 4.11.7 及之前的 Linux 内核中,sound/isa/msnd/msnd_midi.c 的 snd_msndmidi_input_read 函数允许本地用户通过在两次内核读取消息队列头指针的值之间更改该值,从而造成拒绝服务(越界访问)或其他不明影响,也称为双重提取漏洞。(CVE-2017-9985)

- Linux 内核 3.18 至 4.16 版本未正确使用 dxfer_direction=SG_DXFER_FROM_DEV 和 6 字节空 cmdp 来处理 /dev/sg0 中的 SG_IO ioctl。此漏洞可导致最多将 1000 个内核堆页面复制到用户空间。此问题已在 https://github.com/torvalds/linux/commit/a45b599ad808c3c982fdcdc12b0b8611c2f92824 中的上游版本中修复。此问题影响的范围有限,因为用户通常无权访问 SCSI 设备。此外,Nero 用户手册建议通过执行“chmod o+r+w /dev/sg*”访问这些设备。注意:第三方对此报告的相关内容存在争议,并指出攻击者必须使用 CAP_SYS_ADMIN 和 CAP_SYS_RAWIO 功能,因此很难利用此漏洞。(CVE-2018-1000204)

- 在 4.16 之前的 Linux 内核中,本地用户可利用 drivers/scsi/libsas/sas_scsi_host.c,通过触发某些失败情形,造成拒绝服务(ata qc 泄露)。注意:第三方对此报告的相关内容存在争议,因为只有在物理邻近攻击者拔出 SAS 主机总线适配器电缆时才会造成失败 (CVE-2018-10021)

- 在低于 4.13 的 Linux 内核版本中,使用不明架构和编译器时,本地用户可利用 kernel/exit.c 中的 kernel_wait4 函数,通过触发尝试使用 -INT_MIN 值,造成拒绝服务。(CVE-2018-10087)

- 在低于 4.13 的 Linux 内核版本中,使用不明架构和编译器时,本地用户可利用 kernel/signal.c 中的 kill_something_info 函数,通过 INT_MIN 参数,造成拒绝服务。(CVE-2018-10124)

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

- 在低于 4.12.9 的 Linux 内核版本中,本地用户可利用 mm/mempolicy.c 中的 do_get_mempolicy 函数,通过构建的系统调用,造成拒绝服务(释放后使用),或可能造成其他不明影响。(CVE-2018-10675)

- 在操作构建的 ext4 文件系统映像时,Linux 内核 ext4 文件系统容易受到 ext4_ext_drop_refs() 函数中越界访问漏洞的影响。(CVE-2018-10877)

- 在 Linux 内核的 ext4 文件系统中发现缺陷。本地用户可利用 ext4_get_group_info 函数,通过安装和操作构建的 ext4 文件系统映像,造成越界访问、拒绝服务和系统崩溃。(CVE-2018-10881)

- 在 Linux 内核 4.15.15 及之前版本中,fs/ext4/inode.c 中的 ext4_iget 函数未正确处理 i_links_count 为零时的根目录情况,攻击者可利用此漏洞,通过构建的 ext4 映像,造成拒绝服务(ext4_process_freed_data 空指针取消引用和 OOPS)。(CVE-2018-1092)

- 在 Linux 内核 4.15.15 及之前版本中,攻击者可利用 fs/ext4/balloc.c 中的 ext4_valid_block_bitmap 函数,通过构建的 ext4 映像,造成拒绝服务(越界读取和系统崩溃),这是因为 balloc.c 和 ialloc.c 未验证位图块号。(CVE-2018-1093)

- 在低于 4.16.6 的 Linux 内核版本中,本地攻击者可利用 drivers/cdrom/cdrom.c 中的 cdrom_ioctl_media_changed 函数,在 CDROM 驱动程序 CDROM_MEDIA_CHANGED ioctl 中通过不正确的边界检查,读取内核内存。(CVE-2018-10940)

- 在 4.17.1 及之前的 Linux 内核中,fs/jfs/xattr.c 的 ea_get 函数中的 JFS 存在内存损坏错误,在相同文件上调用两次具有两个不同扩展属性名称的 setxattr 即可触发。能够创建文件并执行程序的非特权用户可触发此漏洞。kmalloc 调用不正确,导致 jfs_xattr 中存在 slab-out-of-bounds。
(CVE-2018-12233)

- 在 Linux 内核 4.17.3 及之前版本中的 fs/xfs/libxfs/xfs_attr_leaf.c 中发现一个问题。在使用空 bp 调用 xfs_da_shrink_inode() 后,损坏的 xfs 映像可能发生 OOPS。(CVE-2018-13094)

- 在目录是特定群组的 SGID 且可由非此群组成员的用户写入时,本地用户可利用 Linux 内核 3.16 及之前版本的 fs/inode.c 中的 inode_init_owner 函数,创建具有非预期群组所有权的文件。此时非成员可触发创建普通文件,此文件的群组所有权是该群组。预期行为是非成员可触发创建目录(而非普通文件),此目录的群组所有权是该群组。非成员可通过将普通文件设置为可执行文件和 SGID 来升级权限。(CVE-2018-13405)

- 在 4.17.4 之前的 Linux 内核中,drivers/video/fbdev/uvesafb.c 的 uvesafb_setcmap 函数存在整数溢出漏洞,导致本地攻击者能够造成内核崩溃或提升权限(因为未使用 kmalloc_array)。(CVE-2018-13406)

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

解决方案

更新受影响的 kernel 程序包。

另见

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

插件详情

严重性: Critical

ID: 112113

文件名: ubuntu_USN-3754-1.nasl

版本: 1.11

类型: local

代理: unix

发布时间: 2018/8/24

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

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

风险信息

VPR

风险因素: High

分数: 7.4

CVSS v2

风险因素: High

基本分数: 7.5

时间分数: 5.9

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

CVSS 分数来源: CVE-2017-5897

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-3.13.0-157-generic, p-cpe:/a:canonical:ubuntu_linux:linux-image-3.13.0-157-generic-lpae, p-cpe:/a:canonical:ubuntu_linux:linux-image-3.13.0-157-lowlatency, p-cpe:/a:canonical:ubuntu_linux:linux-image-3.13.0-157-powerpc-e500, p-cpe:/a:canonical:ubuntu_linux:linux-image-3.13.0-157-powerpc-e500mc, p-cpe:/a:canonical:ubuntu_linux:linux-image-3.13.0-157-powerpc-smp, p-cpe:/a:canonical:ubuntu_linux:linux-image-3.13.0-157-powerpc64-emb, p-cpe:/a:canonical:ubuntu_linux:linux-image-3.13.0-157-powerpc64-smp, cpe:/o:canonical:ubuntu_linux:14.04:-:lts

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

可利用: true

易利用性: Exploits are available

补丁发布日期: 2018/8/24

漏洞发布日期: 2017/1/15

参考资料信息

CVE: CVE-2016-10208, CVE-2017-11472, CVE-2017-11473, CVE-2017-14991, CVE-2017-15649, CVE-2017-16526, CVE-2017-16527, CVE-2017-16529, CVE-2017-16531, CVE-2017-16532, CVE-2017-16533, CVE-2017-16535, CVE-2017-16536, CVE-2017-16537, CVE-2017-16538, CVE-2017-16643, CVE-2017-16644, CVE-2017-16645, CVE-2017-16650, CVE-2017-16911, CVE-2017-16912, CVE-2017-16913, CVE-2017-16914, CVE-2017-17558, CVE-2017-18255, CVE-2017-18270, CVE-2017-2583, CVE-2017-2584, CVE-2017-2671, CVE-2017-5549, CVE-2017-5897, CVE-2017-6345, CVE-2017-6348, CVE-2017-7518, CVE-2017-7645, CVE-2017-8831, CVE-2017-9984, CVE-2017-9985, CVE-2018-1000204, CVE-2018-10021, CVE-2018-10087, CVE-2018-10124, CVE-2018-10323, CVE-2018-10675, CVE-2018-10877, CVE-2018-10881, CVE-2018-1092, CVE-2018-1093, CVE-2018-10940, CVE-2018-12233, CVE-2018-13094, CVE-2018-13405, CVE-2018-13406

USN: 3754-1