Linux 内核中已发现 nf_tables、watch_queue 和 IPsec 中的可利用漏洞

Linux 内核中已发现多个危险漏洞,这些漏洞允许本地用户增加其在系统中的权限。 已经为所有正在考虑的问题准备了漏洞利用的工作原型。

  • watch_queue 事件跟踪子系统中的漏洞 (CVE-2022-0995) 允许将数据写入内核内存中的越界缓冲区。 任何非特权用户都可以执行这种攻击,并导致他们的代码以内核权限运行。 该漏洞存在于 watch_queue_set_size() 函数中,并且与尝试清除列表中的所有指针相关,即使尚未为其分配内存也是如此。 使用大多数 Linux 发行版中使用的“CONFIG_WATCH_QUEUE=y”选项构建内核时会出现此问题。

    该漏洞已在 11 月 21.10 日添加的内核更改中得到解决。 您可以在以下页面关注发行版中软件包更新的发布:Debian、SUSE、Ubuntu、RHEL、Fedora、Gentoo、Arch Linux。 该漏洞利用原型已公开发布,允许您在内核为 5.13.0-37 的 Ubuntu XNUMX 上运行时获得 root 访问权限。

    Linux 内核中已发现 nf_tables、watch_queue 和 IPsec 中的可利用漏洞

  • esp2022 和 esp27666 内核模块中存在漏洞 (CVE-4-6),在使用 IPv4 和 IPv6 时使用 IPsec 的 ESP 转换(封装安全负载)。 该漏洞允许具有普通权限的本地用户覆盖内核内存中的对象并提升其在系统上的权限。 该问题是由于分配的内存大小与实际接收的数据之间缺乏协调造成的,因为最大消息大小可能超过为 skb_page_frag_refill 结构分配的最大内存大小。

    该漏洞已于7月5.17日在内核中修复(在5.16.15、21.10等中修复)。 您可以在以下页面关注发行版中软件包更新的发布:Debian、SUSE、Ubuntu、RHEL、Fedora、Gentoo、Arch Linux。 该漏洞利用的工作原型已发布在 GitHub 上,该原型允许普通用户在默认配置下获得 Ubuntu Desktop 2 的 root 访问权限。 据称,只需稍加改动,该漏洞就可以在 Fedora 和 Debian 上运行。 值得注意的是,该漏洞最初是为 pwn2022own XNUMX 比赛准备的,但内核开发人员发现并纠正了与之相关的错误,因此决定披露该漏洞的详细信息。

  • nf_tables 模块中的 netfilter 子系统存在两个漏洞(CVE-2022-1015、CVE-2022-1016),保证了 nftables 数据包过滤器的运行。 第一个问题允许本地非特权用户对堆栈上分配的缓冲区进行越界写入。 当处理以某种方式格式化并在有权访问 nftables 规则的用户指定的索引的检查阶段进行处理的 nftables 表达式时,会发生溢出。

    该漏洞是由于开发人员暗示“enum nft_registers reg”的值是一个字节,当启用某些优化时,编译器根据 C89 规范可以使用 32 位值。 。 由于这个特性,检查和分配内存时使用的大小与结构体中数据的实际大小不对应,从而导致结构体的尾部与堆栈上的指针重叠。

    该问题可被利用来在内核级别执行代码,但成功的攻击需要访问 nftables,这可以在具有 CLONE_NEWUSER 或 CLONE_NEWNET 权限的单独网络命名空间中获取(例如,如果您可以运行隔离容器)。 该漏洞还与编译器使用的优化密切相关,例如,在“CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y”模式下构建时启用优化。 从 Linux 内核 5.12 开始,可以利用该漏洞。

    netfilter 中的第二个漏洞是由访问 nft_do_chain 处理程序中已释放的内存区域(释放后使用)引起的,并可能导致内核内存未初始化区域的泄漏,这些区域可以通过 nftables 表达式的操作读取并使用,例如,在开发其他漏洞时确定指针地址。 从 Linux 内核 5.13 开始,可以利用该漏洞。

    这些漏洞已在今天的内核补丁 5.17.1、5.16.18、5.15.32、5.10.109、5.4.188、4.19.237、4.14.274 和 4.9.309 中得到解决。 您可以在以下页面关注发行版中软件包更新的发布:Debian、SUSE、Ubuntu、RHEL、Fedora、Gentoo、Arch Linux。 发现问题的研究人员宣布正在准备针对这两个漏洞的有效利用程序,计划在发行版发布内核包更新后的几天内发布。

来源: opennet.ru

添加评论