Linux 内核中检测到两个漏洞,仍然允许用户提升权限 

漏洞

如果被利用,这些漏洞可能允许攻击者未经授权访问敏感信息或通常会导致问题

前几天有消息爆出 检测到两个漏洞 的子系统 Linux内核, Netfilter 和 io_uring,它们允许本地用户提升他们在系统上的权限。

第一个是脆弱性。 (CVE-2023-32233) 在 Netfilter 子系统中检测到 并且由 nf_tables 模块中的 use-after-free 内存访问引起,这确保了 nftables 包过滤器的运行。

这个错误是因为 netfilter nf_tables 允许更新它的配置 对于组合在一起的批处理请求 多项基本操作 在原子事务中。

问题 已在各种版本的 Linux 内核中复现,包括 Linux 6.3.1 (当前稳定)并且可以通过发送特制请求来更新 nftables 配置来利用该漏洞。 提到攻击需要访问 nftables,如果您拥有 CLONE_NEWUSER、CLONE_NEWNS 或 CLONE_NEWNET 权限(例如,如果您可以运行隔离容器),则可以在单独的网络命名空间中获取 nftables。

对于这个漏洞,发现问题的研究人员承诺推迟一周发布详细信息和提供 root shell 的有效漏洞利用示例。

在特定情况下,无效的批处理请求可能包含一个操作,该操作隐式删除现有的 nft 匿名集,然后是另一个操作,该操作试图在删除后对同一个匿名 nft 集进行操作。 在上述场景中,上述操作的示例是删除现有的使用 nft 匿名集的 nft 规则。 而后一个操作的一个例子是在数组被交替删除后尝试从那个 nft 匿名数组中删除一个元素,后一个操作甚至可能再次尝试显式删除那个 nft 匿名数组。 

如开头所述,这是几天前的事,漏洞和信息已经公开。 该漏洞及其详细信息可在以下链接中找到。

检测到第二个故障, 是漏洞 (CVE-2023-2598) 在 异步I/O接口的实现 io_uring 自 5.1 版起包含在 Linux 内核中。

该问题是由 io_sqe_buffer_register 函数中的错误引起的,该错误允许访问静态分配缓冲区边界之外的物理内存。 该问题仅出现在 6.3 分支中,将在下一个 6.3.2 更新中修复。

提到原始提交背后的想法是,不是将缓冲的大页面拆分为单独的 bvec 条目,您可以为页面的所有缓冲部分使用单个 bvec 条目。 具体来说,如果缓冲区映射中的所有页面都在单个 bvec 条目中使用第一个页面结构和缓冲区长度,而不是单独映射每个页面。

所以 bvec 将远远超出它实际允许接触的单个页面。 随后,IORING_OP_READ_FIXED 和 IORING_OP_WRITE_FIXED 允许我们随意读写缓冲区(即 bvec 指向的内存)。 这允许对我们实际拥有的唯一页面后面的物理内存进行读/写访问。

漏洞发布提到了错误重现步骤:

1.创建一个memfd
2. 该文件描述符中的单个页面出错
3. 使用 MAP_FIXED 将此页面重复映射到连续的位置
4. 将刚才那个页面填充的整个区域注册为
带有 IORING_REGISTER_BUFFERS 的固定缓冲区
5. 使用 IORING_OP_WRITE_FIXED 将缓冲区写入其他文件
(OOB 读取)或 IORING_OP_READ_FIXED 读取缓冲区中的数据(
OOB写)。

最后值得一提的是 已经可用  一个有效的漏洞利用原型 (CVE-2023-2598) 用于测试,允许您以内核权限运行代码。

脆弱性 (CVE-2023-32233) 它已在 6.4-rc 更新中修复,您可以在页面上的分发版中关注漏洞修复: DebianUbuntuGentoo的RHELFedoraSUSE/开放SUSE.


成为第一个发表评论

发表您的评论

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

*

*

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