他们在 Linux 中发现了一个允许提权的 VFS 漏洞

几天前 有消息称漏洞已被发现 (已在 CVE-2022-0185 下编目)和n 文件系统上下文 API 由提供 Linux内核 这可能允许本地用户在系统上获得 root 权限。

有人提到 问题是非特权用户可以在隔离容器中获得此类权限 如果系统上启用了对用户命名空间的支持。

例如,在 Ubuntu 和 Fedora 上默认启用用户命名空间,但在 Debian 和 RHEL 上未启用(除非使用容器隔离平台)。 除了提权之外,如果容器具有 CAP_SYS_ADMIN 权限,该漏洞还可以用于突破隔离容器。

脆弱性 存在于 VFS 的函数 legacy_parse_param() 中 并且是由于对不支持文件系统上下文 API 的文件系统上提供的参数的最大大小缺乏适当的验证。

最近,我和 CTF Crusaders of Rust 团队的几个朋友遇到了 0-day Linux 内核堆溢出。 我们通过 syzkaller 模糊测试发现了该漏洞,并迅速将其开发为 Ubuntu LPE 漏洞利用程序。 然后我们重写了它以逃避和根植谷歌强化的 Kubernetes CTF 基础设施。 此错误影响自 5.1 以来的所有内核版本(5.16 目前正在进行中)并已分配 CVE-2022-0185。 我们已经向 Linux 发行版和安全邮件列表报告了此问题,并且该错误已在本文发布时得到修复。

传递过大的参数会导致溢出 用于计算正在写入的数据大小的整数变量; 该代码有一个“if (len > PAGE_SIZE - 2 - size)”缓冲区溢出检查,如果大小值大于 4094,由于整数溢出下限(整数溢出,当转换 4096 – 2 – 4095 到无符号整数,得到 2147483648)。

此错误允许在访问特制 FS 映像时, 导致缓冲区溢出并覆盖分配的内存区域之后的内核数据。 要利用该漏洞,需要CAP_SYS_ADMIN权限,即管理员权限。

到 2022 年,我们的队友下定决心要找到 0 年的第 2022 天。我们不太确定如何开始,但由于我们的团队对 Linux 内核漏洞非常熟悉,所以我们决定只购买一些专用服务器。 并运行 Google 的 syzkaller fuzzer。 太平洋标准时间 6 月 22 日晚上 30:0,chop6 在 legacy_parse_param 中收到以下 KASAN 故障报告:slab-out-of-bounds Write in legacy_parse_param。 貌似syzbot是在XNUMX天前fuzzing安卓的时候才发现这个问题的,但是这个问题没有处理,我们天真地以为没有人注意到。

最后,值得一提的是,这个问题从 Linux 内核版本 5.1 开始就已经显现出来,并且在几天前发布的 5.16.2、5.15.16、5.10.93、5.4.173 版本的更新中得到了解决。

除此之外 漏洞包更新已经发布RHELDebian软呢帽和 Ubuntu. 虽然该解决方案尚不可用 Arch LinuxGentoo的SUSE y openSUSE。

在这些情况下,提到作为不使用容器隔离的系统的安全解决方案,您可以将 sysctl "user.max_user_namespaces" 的值设置为 0:

发现问题的研究人员发表了 漏洞利用演示 que 允许以默认配置在 Ubuntu 20.04 上以 root 身份运行代码。 计划是 漏洞利用代码在一周后发布在 GitHub 上 该发行版发布了修复漏洞的更新。

最后 如果您有兴趣了解更多有关它的信息,您可以在中查看详细信息 以下链接。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   加莱戈

    另一个不用棍子碰按扣的原因。