Ubuntu 16.04 LTS / 18.04 LTS:Linux 内核 (AWS) 漏洞 (USN-4118-1)

critical Nessus 插件 ID 128478

简介

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

描述

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

- 在 Linux 内核 4.17.3 及之前版本中,通过较大的相对超时值,可导致 kernel/time/alarmtimer.c 中的 alarm_timer_nsleep 函数发生整数溢出,这是未使用 ktime_add_safe 所致。(CVE-2018-13053)

- 在 Linux 内核 4.17.3 及之前版本的 fs/xfs/xfs_icache.c 中发现一个问题。当在损坏的 xfs 图像上执行路径遍历时,使用空 inode->i_ops 指针的 lookup_slow() 中会出现空指针取消引用和恐慌。这是缺少对于分配期间缓存的 inode 是否被释放的正确验证所致。(CVE-2018-13093)

- 在 4.14 及之前的 Linux 内核的 fs/f2fs/super.c 中发现问题。如果在挂载构建的 f2fs 图像时遇到位图大小异常问题,则会发生拒绝服务(越界内存访问和错误)。(CVE-2018-13096)

- 在 4.17.3 及之前的 Linux 内核的 fs/f2fs/super.c 中发现问题。损毁 f2fs 图像中的 incorrect user_block_count 存在越界读取或除以零错误,会造成拒绝服务(错误)。(CVE-2018-13097)

- 在 4.17.3 及之前的 Linux 内核的 fs/f2fs/inode.c 中发现问题。如果 inode 中设置了 FI_EXTRA_ATTR,修改后的 f2fs 文件系统图像可能会发生拒绝服务(slab 越界读取和错误)。(CVE-2018-13098)

- 在 4.4 及之前的 Linux 内核的 fs/f2fs/inline.c 中发现问题。如果内联 inode 包含无效的已保留 blkaddr,修改后的 f2fs 文件系统映像会发生拒绝服务(越界内存访问和错误)。(CVE-2018-13099)

- 在 4.17.3 及之前的 Linux 内核的 fs/f2fs/super.c 中发现了一个问题:未正确验证损毁 f2fs 图像中的 secs_per_zone,除以零错误即为一例。
(CVE-2018-13100)

- 在 Linux 内核 4.17.10 及之前的版本中发现问题。挂载构建的 btrfs 图像时,
fs/btrfs/relocation.c 中的 __del_reloc_root() 中存在无效指针取消引用,此问题与未初始化 reloc 控制就删除 reloc rb_trees 有关。(CVE-2018-14609)

- 在 Linux 内核 4.17.10 及之前的版本中发现问题。在安装和操作构建的 btrfs 映像时,write_extent_buffer() 中存在越界访问,这是在 fs/btrfs/extent-tree.c 中的 btrfs_read_block_groups 中未验证每个块群组在安装时是否有相应区块所致。(CVE-2018-14610)

- 在 Linux 内核 4.17.10 及之前的版本中发现问题。在安装构建的 btrfs 映像时,try_merge_free_space() 中存在释放后使用,这是 fs/btrfs/volumes.c 中的 btrfs_check_chunk_valid 中缺少区块类型标记检查所致。(CVE-2018-14611)

- 在 Linux 内核 4.17.10 及之前的版本中发现问题。在安装构建的 btrfs 映像时,btrfs_root_node() 中存在无效指针取消引用,这是 fs/btrfs/extent-tree.c 的 btrfs_read_block_groups 中缺少区块群组映射验证以及 fs/btrfs/tree-checker.c 的 check_leaf 中缺少空树检查所致。(CVE-2018-14612)

- 在 Linux 内核 4.17.10 及之前的版本中发现问题。在安装和操作构建的 btrfs 映像时,io_ctl_map_page() 中存在无效指针取消引用,这是 fs/btrfs/tree-checker.c 中的 check_leaf_item 中缺少区块群组项目验证所致。(CVE-2018-14613)

- 在 Linux 内核 4.17.10 及之前的版本中发现问题。挂载 f2fs 图像时,fs/f2fs/segment.c 的 __remove_dirty_segment() 存在
越界访问问题。(CVE-2018-14614)

- 在 Linux 内核 4.17.10 及之前的版本中发现问题。卸载 f2fs 图像时,fs/f2fs/inline.c 的 truncate_inline_inode() 存在缓冲区溢出漏洞,因为长度值可能为负数。(CVE-2018-14615)

- 在 Linux 内核 4.17.10 及之前的版本中发现问题。处理损毁的 f2fs 图像中的文件时,fs/crypto/crypto.c 的 fscrypt_do_page_crypto() 存在空指针取消引用问题。
(CVE-2018-14616)

- 在 Linux 内核 4.17.10 及之前的版本中发现问题。在 hfs+ 系统文件中打开目录数据畸形且在没有元数据目录的情况下以只读方式挂载的文件时,fs/hfsplus/dir.c 的 hfsplus_lookup() 发生空指针取消引用和错误。
(CVE-2018-14617)

- 在 Linux 内核中 cleancache 子系统在最终文件截断(删除)后清除 inode 的方式中发现安全缺陷。使用相同 inode 创建的新文件可能包含 cleancache 的剩余页面以及旧文件数据,而非新文件数据。(CVE-2018-16862)

- 在 Linux 内核 4.19.8 及之前版本中,drivers/net/usb/hso.c 中的 hso_get_config_data 函数可从 USB 设备(作为 u8)读取 if_num,并使用该值进行小数组索引,从而导致对象越界 (OOB) 读取,这使攻击者可能在内核地址空间中进行任意读取。(CVE-2018-19985)

- 在 Linux 内核 4.19.9 之前的版本中发现问题。USB 子系统在读取额外的描述符期间,未正确处理大小检查,这与 drivers/usb/core/usb.c 中的 __usb_get_extra_descriptor 有关。
(CVE-2018-20169)

- 在 Linux 内核 4.18.11 之前的版本中发现问题。drivers/net/appletalk/ipddp.c 中的 ipddp_ioctl 函数让本地用户可以通过 SIOCFINDIPDDPRT ioctl 调用利用 CAP_NET_ADMIN 读取 ipddp_route dev 和 next 字段,从而获取敏感内核地址信息。
(CVE-2018-20511)

- 在低于 4.20.2 的 Linux 内核版本中,kernel/sched/fair.c 未正确处理叶 cfs_rq's,攻击者可利用此漏洞,通过引发高负载,造成拒绝服务(update_blocked_averages 中存在无限循环),或可能造成其他不明影响。(CVE-2018-20784)

- 在 Linux 内核 4.18.7 之前的版本中发现问题。block/blk-core.c 中存在
__blk_drain_queue() 释放后使用,这是未正确处理某个错误情况所致。(CVE-2018-20856)

- macOS 10.13 之前的版本、High Sierra 和 iOS 11.4 之前的版本和 2018 年 6 月 5 日修补程序之前的 Android 版本可能不足以验证在 Diffie-Hellman 密钥交换期间用于生成公钥的椭圆曲线参数,允许远程攻击者获取用于设备的加密密钥。(CVE-2018-5383)

- 21.10 之前的 Intel(R) PROSet/无线 WiFi 软件驱动程序中存在访问控制不充分漏洞,可能允许未经身份验证的用户通过邻近访问造成拒绝服务。(CVE-2019-0136)

- Linux 内核中发现缺陷。drivers/net/wireless/marvell/mwifiex/ie.c 中的 mwifiex_uap_parse_tail_ies 函数中存在基于堆的缓冲区溢出,可能会造成内存损坏,并可能造成其他后果。(CVE-2019-10126)

- 在版本低于 4.18.0 的所有内核 3.x.x 和内核 5.x.x 内 UART 的 Linux 内核蓝牙实现中发现缺陷。具有本地访问权限和蓝牙硬件写入权限的攻击者可利用此缺陷,发起特别构建的 ioctl 函数调用,造成系统崩溃。
(CVE-2019-10207)

- 在低于 5.1.7 的 Linux 内核版本中,攻击者可使用内核为无连接协议(例如 UDP 和 ICMP)生成的 IP ID 值来跟踪设备。将此类流量发送到多个目标 IP 地址时,可以获得(计数器数组索引)的哈希冲突,从而(通过枚举)获得哈希密钥。攻击者可通过托管构建网页,使用 WebRTC 或 gQUIC 强制向攻击者控制的 IP 地址发送 UDP 流量来发动攻击。(CVE-2019-10638)

- 版本低于 5.0.8 的 Linux 内核 4.x(自 4.1 起)和 5.x 存在信息泄露(部分内核地址泄露),可导致 KASLR 绕过。具体而言,可以使用内核为无连接协议(例如 UDP 和 ICMP)生成的 IP ID 值来提取 KASLR 内核映像偏移。将此类流量发送到多个目标 IP 地址时,可以获得(计数器数组索引)的哈希冲突,从而(通过枚举)获得哈希密钥。此密钥包含来自(静态变量的)内核地址的充足位,因此当(通过枚举)提取密钥时,将暴露内核映像的偏移。此攻击可由攻击者迫使目标设备将 UDP 或 ICMP(或某些其他)流量发送至受攻击者控制的 IP 地址,来远程执行。如果服务器是 DNS 服务器,则强制服务器发送 UDP 流量无关紧要。如果服务器响应 ICMP Echo 请求 (ping),则 ICMP 流量无关紧要。对于客户端目标,如果目标访问攻击者的网页,则可使用 WebRTC 或 gQUIC 将 UDP 流量强制发送到攻击者控制的 IP 地址。注意:由于 IP ID 生成已更改为对网络命名空间相关的地址具有具体依存关系,所有针对 KASLR 的攻击在 4.1 中变得可行。(CVE-2019-10639)

- 在版本低于 5.0 的 Intel(R) i915 Graphics for Linux 中,经过身份验证的用户可利用内核模式驱动程序中的输入验证不足问题,通过本地访问启用权限升级。
(CVE-2019-11085)

- Linux 内核 5.1-rc5 之前版本允许 page->_refcount 引用计数溢出,如果存在约 140 GiB 的 RAM,则会产生释放后使用问题。这与 fs/fuse/dev.c、fs/pipe.c, fs/splice.c、include/linux/mm.h、include/linux/pipe_fs_i.h、kernel/trace/trace.c、mm/gup.c 和 mm/hugetlb.c 有关。FUSE 请求会发生此问题。(CVE-2019-11487)

- 版本低于 5.0.10 的 Linux 内核中的 coredump 实现不会使用锁定或其他机制在其运行时防止 vma 布局或 vma 标志变更,本地用户可借此触发含有 mmget_not_zero 或 get_task_mm 调用的争用条件,从而获得敏感信息、造成拒绝服务或可能产生其他不明影响。此问题与 fs/userfaultfd.c、mm/mmap.c、fs/proc/task_mmu.c 和 drivers/infiniband/core/uverbs_main.c 有关。(CVE-2019-11599)

- 在 Linux 内核 5.0.7 之前的版本中发现问题。当 megasas_create_frame_pool() 在 drivers/scsi/megaraid/megaraid_sas_base.c 的 megasas_alloc_cmds() 中失败时,可能出现空指针取消引用。
此问题会造成拒绝服务,与释放后使用相关。(CVE-2019-11810)

- 在版本低于 5.0.8 的 Linux 内核内 net/rds/tcp.c 的 rds_tcp_kill_sock 中发现问题。其中存在争用条件,可导致释放后使用,此问题与网络命名空间清理相关。(CVE-2019-11815)

- 在 5.1.2 及之前版本的 Linux 内核中,fs/ext4/extents.c 并未归零区段树块的未使用内存区域,本地用户可借此通过读取文件系统中的未初始化数据获得敏感信息。(CVE-2019-11833)

- 在低于 5.0.15 的 Linux 内核版本中,本地用户可利用 net/bluetooth/hidp/sock.c 中的 do_hidp_sock_ioctl 函数,通过 HIDPCONNADD 命令,从内核堆栈内存获取潜在敏感信息,这是名称字段不能以“\0”字符结尾所致。(CVE-2019-11884)

- 在 Linux 内核 4.20.15 之前的版本中发现问题。net/nfc/llcp_commands.c 中的 nfc_llcp_build_tlv 函数可能会返回 NULL。如果调用程序未对此进行检查,则会触发空指针取消引用。这将造成拒绝服务。这会影响 net/nfc/llcp_core.c 中的 nfc_llcp_build_gb。(CVE-2019-12818)

- 在 Linux 内核 5.0 之前的版本中发现问题。drivers/net/phy/mdio_bus.c 中的 __mdiobus_register() 函数可调用 put_device(),进而触发 fixed_mdio_bus_init 释放后使用。
此问题会导致拒绝服务。(CVE-2019-12819)

- 在 5.1.13 之前的 Linux 内核中,net/nfc/netlink.c 的函数 nfc_genl_deactivate_target() 存在空指针取消引用漏洞,可通过忽略某些 NFC 属性的恶意用户模式程序触发,从而导致拒绝服务。(CVE-2019-12984)

- 在 5.1.9 版本之前的 Linux 内核的 arch/x86/lib/insn-eval.c 中,由于 modify_ldt() 和 MPX 边界违规的 #BR 异常之间存在争用条件,存在 LDT 条目访问权的释放后使用。(CVE-2019-13233)

- 在低于 5.1.17 的 Linux 内核版本中,kernel/ptrace.c 中的 ptrace_link 未正确处理要创建 ptrace 关系的进程的凭据记录,本地用户可利用此漏洞,通过使用某些父子进程关系情况获取根访问权限,其中父项降低权限并调用 execve(可能允许攻击者控制)。造成此问题的其中一个因素是对象生命周期问题(还可导致错误)。另一个因素是未将 ptrace 关系正确标记为特权,攻击者可通过(例如)Polkit 的 pkexec 帮助程序和 PTRACE_TRACEME 利用此漏洞。注意:SELinux deny_ptrace 在某些环境下可能是有用的变通方案。
(CVE-2019-13272)

- 在 Linux 内核 5.2.1 及之前版本内 drivers/input/tablet/gtco.c 的 parse_hid_report_descriptor 中,恶意 USB 设备可发送 HID 报告,从而在生成调试消息期间触发越界写入。(CVE-2019-13631)

- 在 Linux 内核 5.2.3 之前版本中,drivers/block/floppy.c 中的 set_geometry 未验证 sect 和 head 字段,整数溢出和越界读取即为一例。插入软盘时本地非特权用户可触发此问题。注意:QEMU 默认创建软盘设备。(CVE-2019-14283)

- 在低于 5.2.3 的 Linux 内核版本中,攻击者可利用 drivers/block/floppy.c 造成拒绝服务(setup_format_params 除零)。两次连续 ioctl 调用可触发错误:第一次调用应使用 .sect 和 .rate 值设置驱动器几何,使 F_SECT_PER_TRACK 为零。接下来应调用软盘格式操作。本地非特权用户即使未插入软盘也可触发此错误。注意:QEMU 默认创建软盘设备。(CVE-2019-14284)

- 在 4.16.4 之前的 Linux 内核中,drivers/usb/dwc3/gadget.c 中的双重锁定错误可能会造成 f_hid 死锁。(CVE-2019-14763)

在 Linux 内核 5.1.12 之前版本的 drivers/scsi/qedi/qedi_dbg.c 中发现一个问题。在 qedi_dbg_* 系列函数中,存在越界读取。(CVE-2019-15090)

- 在 Linux 内核 5.2.6 之前的版本中发现问题。由于 drivers/media/radio/radio-raremono.c 未正确分配内存,drivers/media/v4l2-core/v4l2-dev.c 驱动程序中存在由恶意 USB 设备造成的释放后使用漏洞。(CVE-2019-15211)

- 在 Linux 内核 5.1.8 之前的版本中发现问题。在 drivers/usb/misc/rio500.c 驱动程序中中,存在由恶意 USB 设备造成的双重释放漏洞。(CVE-2019-15212)

- 在 Linux 内核 5.0.10 之前的版本中发现问题。声音子系统中存在释放后使用,这是卡断开连接导致某些数据结构过早删除所致。此问题与 sound/core/init.c 和 sound/core/info.c 相关。(CVE-2019-15214)

- 在 Linux 内核 5.2.6 之前的版本中发现问题。drivers/media/usb/cpia2/cpia2_usb.c 驱动程序中存在恶意 USB 设备造成的释放后使用。(CVE-2019-15215)

- 在 Linux 内核 5.0.14 之前的版本中发现问题。在 drivers/usb/misc/yurex.c 驱动程序中,存在恶意 USB 设备造成的空指针取消引用漏洞。(CVE-2019-15216)

- 在 Linux 内核 5.1.8 之前的版本中发现问题。在 drivers/media/usb/siano/smsusb.c 驱动程序中,存在恶意 USB 设备造成的空指针取消引用。(CVE-2019-15218)

- 在 Linux 内核 5.2.1 之前的版本中发现问题。drivers/net/wireless/intersil/p54/p54usb.c 驱动程序中存在恶意 USB 设备造成的释放后使用。(CVE-2019-15220)

- 在 Linux 内核 5.1.17 之前的版本中发现问题。在 sound/usb/line6/pcm.c 驱动程序中,存在恶意 USB 设备造成的空指针取消引用。(CVE-2019-15221)

- 在 Linux 内核 5.0.9 之前的版本中发现问题。在 atalk_proc_exit 中,存在释放后使用漏洞,与 net/appletalk/atalk_proc.c、net/appletalk/ddp.c 和 net/appletalk/sysctl_net_atalk.c 相关。
(CVE-2019-15292)

- 在 em28xx-dvb.c 的 em28xx_unregister_dvb 中,可能存在释放后使用问题。这可能会导致本地权限提升,且无需其他执行权限。无需用户交互即可利用漏洞。产品:Android 版本:Android 内核 Android ID:A-111761954References:
上游内核 (CVE-2019-2024)

- 在 uvc_driver.c 的 uvc_parse_standard_control 中,可能存在因输入验证不当而导致的越界读取。这可能导致本地信息泄露,且无需其他执行权限。不需用户交互即可恶意利用。产品:Android。版本:Android 内核。
Android ID:A-111760968。(CVE-2019-2101)

- 在 Linux 内核 4.19.13 及之前版本的 can_can_gw_rcv in net/can/gw.c 中发现一个问题。CAN 帧修改规则允许进行逐位逻辑运算,此类运送亦可适用于 can_dlc 字段。
具有 CAP_NET_ADMIN 的特权根用户可以创建 CAN 帧修改规则,使数据长度代码值大于可用 CAN 帧数据大小。结合将结果相对存储到数据末尾(例如 cgw_csum_xor_rel)的配置校验和计算,可重写 skb 尾部(例如 skb_shared_info 中的 frag_list 指针),最终可导致系统崩溃。因为缺少检查,CAN 驱动程序在处理 can-gw 操纵的传出帧时,可能会写入 CAN 控制器的 I/O 内存中登录数据以外的任意内容。
(CVE-2019-3701)

- 在 Linux 内核内 drivers/hid/hid-debug.c 文件的 hid_debug_events_read() 函数中发现缺陷,使用从用户空间传递的某些参数,可能进入无限循环。本地特权用户(根用户)可造成系统锁定和拒绝服务。v4.18 及更高版本容易受到漏洞的影响。(CVE-2019-3819)

- 在 mwifiex 内核模块中发现缺陷,攻击者可在连接到恶意无线网络时利用此缺陷破坏内存,并可能提升权限。(CVE-2019-3846)

- 在 handle_rx() 中处理传入数据包时,在 Linux 内核 v5.1-rc6 之前(包括 v5.1-rc6 版本)的 vhost_net 内核模块中发现无限循环问题。一端发送数据包的速度快于另一端可以处理数据包的速度时,将出现该问题。客户机用户(可能为远程用户)可以利用此缺陷停止 vhost_net 内核线程,进而引发 DoS 情况。(CVE-2019-3900)

- 蓝牙 BR/EDR 规范 5.1 及之前版本允许足够低的加密密钥长度,无法防止攻击者影响密钥长度协商。这使可行的暴力破解攻击(又称为 KNOB)能够在受害者不知情的情况下解密流量并注入任意加密文本。(CVE-2019-9506)

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

解决方案

更新受影响的 kernel 程序包。

另见

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

插件详情

严重性: Critical

ID: 128478

文件名: ubuntu_USN-4118-1.nasl

版本: 1.14

类型: local

代理: unix

发布时间: 2019/9/3

最近更新时间: 2024/8/27

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

风险信息

VPR

风险因素: Critical

分数: 9.7

CVSS v2

风险因素: Critical

基本分数: 10

时间分数: 8.7

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

CVSS 分数来源: CVE-2019-15292

CVSS v3

风险因素: Critical

基本分数: 9.8

时间分数: 9.4

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

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

CVSS 分数来源: CVE-2019-10126

漏洞信息

CPE: cpe:/o:canonical:ubuntu_linux:18.04:-:lts, cpe:/o:canonical:ubuntu_linux:16.04:-:lts, p-cpe:/a:canonical:ubuntu_linux:linux-image-4.15.0-1047-aws

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

可利用: true

易利用性: Exploits are available

补丁发布日期: 2019/9/2

漏洞发布日期: 2018/7/2

CISA 已知可遭利用的漏洞到期日期: 2022/6/10

可利用的方式

Core Impact

Metasploit (Linux Polkit pkexec helper PTRACE_TRACEME local root exploit)

参考资料信息

CVE: CVE-2018-13053, CVE-2018-13093, CVE-2018-13096, CVE-2018-13097, CVE-2018-13098, CVE-2018-13099, CVE-2018-13100, CVE-2018-14609, CVE-2018-14610, CVE-2018-14611, CVE-2018-14612, CVE-2018-14613, CVE-2018-14614, CVE-2018-14615, CVE-2018-14616, CVE-2018-14617, CVE-2018-16862, CVE-2018-19985, CVE-2018-20169, CVE-2018-20511, CVE-2018-20784, CVE-2018-20856, CVE-2018-5383, CVE-2019-0136, CVE-2019-10126, CVE-2019-10207, CVE-2019-10638, CVE-2019-10639, CVE-2019-11085, CVE-2019-11487, CVE-2019-11599, CVE-2019-11810, CVE-2019-11815, CVE-2019-11833, CVE-2019-11884, CVE-2019-12818, CVE-2019-12819, CVE-2019-12984, CVE-2019-13233, CVE-2019-13272, CVE-2019-13631, CVE-2019-14283, CVE-2019-14284, CVE-2019-14763, CVE-2019-15090, CVE-2019-15211, CVE-2019-15212, CVE-2019-15214, CVE-2019-15215, CVE-2019-15216, CVE-2019-15218, CVE-2019-15220, CVE-2019-15221, CVE-2019-15292, CVE-2019-2024, CVE-2019-2101, CVE-2019-3701, CVE-2019-3819, CVE-2019-3846, CVE-2019-3900, CVE-2019-9506

USN: 4118-1