乐趣区

关于linux-kernel:Linux-内核爆出权限提升漏洞UbuntuDebianFedora-均受影响

近日,平安钻研人员在 Linux 内核文件系统中发现了一个 size_t-to-int 类型转换破绽,并认为 2014 年以来的所有 Linux 内核版本均有可能受到影响。该破绽被命名为 Sequoia(编号 CVE-2021-33909),是一个权限晋升破绽,可使低权限用户取得 root 权限。

Sequoia 破绽的原理

Linux 内核文件系统接口是一个层级架构,包含用户接口层、文件系统实现和存储设备驱动程序,是操作系统最重要的性能,在大多数 Linux 操作系统中极为广泛。

Linux 内核的 seq_file 接口产生蕴含记录序列的虚构文件,每个记录必须适宜 seq_file 缓冲区。当空间耗尽时,它只需将其体积翻倍即可扩充空间。然而,如果 size_t 变量被传递给 size 参数为 32 位整数而不是 size_t 的函数时,会产生什么呢?这正是 Sequoia 破绽的攻打原理。

来自 Qualys 的平安钻研人员示意:通过创立、挂载和删除一个总门路长度超过 1GB 的深层目录构造,并 open()s 和 read()s /proc/self/mountinfo,无特权的本地攻击者能够通过一系列其余操作实现内存越界写入。攻击者能够借此毁坏数据,使零碎解体,甚至执行未经受权的代码。

Qualys 钻研人员胜利利用该破绽,在 Ubuntu 20.04、Ubuntu 20.10、Ubuntu 21.04、Debian 11 和 Fedora 34 工作站的默认装置设置下取得了齐全的 root 权限。其余 Linux 发行版也有可能存在该破绽并被利用。

解决方案

Qualys 团队于 6 月初发现该破绽,目前红帽曾经公布了补丁。7 月 20 日,Linux 内核维护者 Greg Kroah-Hartman 公布了 Linux 内核 5.13.4 版本针对 Sequoia 的内核补丁。

如果无奈降级内核,用户依然能够通过将 /proc/sys/kernel/unprivileged_userns_clone 设置为 0 来缓解问题,这能够避免攻击者在用户命名空间中挂载长目录。然而,攻击者依然能够通过用户空间文件系统 (FUSE) 挂载长目录。当该长目录超过 8MB,systemd 会耗尽其堆栈,解体,导致整个操作系统解体。

用户还能够将 /proc/sys/kernel/unprivileged_bpf_disabled 设置为 1,以避免攻击者将 eBPF 程序加载到内核​​。

然而以上缓解措施只阻止了 Qualys 的特定破绽利用办法,可能还存在其余攻击方式。要齐全修复该破绽,必须给内核打上补丁。

参考链接:

  • https://blog.qualys.com/vulne…
  • https://www.zdnet.com/article…
  • https://cdn.kernel.org/pub/li…
退出移动版