Linux 内核爆出权限提升漏洞,Ubuntu、Debian、Fedora 均受影响

SegmentFault

共 1627字,需浏览 4分钟

 ·

2021-07-28 11:08

技术编辑:小魔丨发自 思否编辑部
公众号:SegmentFault



近日,安全研究人员在 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/vulnerabilities-threat-research/2021/07/20/sequoia-a-local-privilege-escalation-vulnerability-in-linuxs-filesystem-layer-cve-2021-33909

https://www.zdnet.com/article/patch-now-linux-file-system-security-hole-dubbed-sequoia-can-take-over-systems/#ftag=RSSbaffb68

https://cdn.kernel.org/pub/linux/kernel/v5.x/ChangeLog-5.13.4


- END -

浏览 17
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报