在 Linux 垃圾收集器中检测到可能导致权限提升的错误 

系统漏洞

几天前 Google Project Zero 团队的 Jann Horn, 谁之前发现了 Spectre 和 Meltdown 漏洞, 揭示了一种利用漏洞的技术 在 Linux 内核垃圾收集器 (CVE-2021-4083) 中找到。

脆弱性 是由竞争条件引起的 当清除 unix 套接字文件描述符时 并可能允许非特权本地用户在内核级别执行您的代码。

问题 很有趣,因为时间窗口 在此期间发生竞争条件 被评估为太小 制造真正的漏洞,但该研究的作者表明,如果漏洞的创建者拥有必要的技能和时间,即使最初持怀疑态度的漏洞也可能成为真正攻击的来源。

扬·霍恩 展示了如何在花丝操作的帮助下,可以减少病情 当同时调用 close() 和 fget() 函数以充分利用释放后使用漏洞并访问内核中已释放的数据结构时发生的竞争事件。

出现竞争条件 在关闭文件描述符的过程中 同时调用 close() 和 fget() 函数。 close() 的调用可以在 fget() 执行之前执行,这会混淆项目收集器 未使用,因为根据 refcount,文件结构将没有外部引用,但仍将附加到文件描述符,即垃圾收集器将假定它对结构具有独占访问权,但实际上是在很短的一段时间内,文件描述符表中的剩余条目将继续指示该结构正在被释放。

增加概率 进入比赛状态, 使用了一些技巧来增加成功的可能性 持股比例为 30% 在执行特定的系统优化时。 例如,为了将具有文件描述符的结构的访问时间增加数百纳秒,通过在另一个 CPU 内核上的活动污染缓存来将数据从处理器缓存中刷新,这使得从内存中返回结构和不是 CPU 的快速缓存。

第二个重要特征 使用硬件定时器产生的中断 增加比赛时间。 选择时间是为了在竞争条件发生期间触发中断处理程序并中断代码执行一段时间。 为了进一步延迟控制权的返回,epoll 在队列中生成了大约 50 个条目,这需要在中断处理程序中进行迭代。

技术 漏洞利用 在 90 天的保密期后披露。 问题

并在 5.16 月初修复。 该修复程序包含在 2021 内核中,并且还移至内核的 LTS 分支以及发行版中提供的内核包。 需要注意的是,该漏洞是在对类似问题 CVE-0920-XNUMX 的分析过程中发现的,该问题在处理 MSG_PEEK 标志时出现在垃圾收集器中。

发现的另一个漏洞 最近在 Linux 内核中,它是 CVE-2022-0742 可能会耗尽可用内存并远程导致拒绝服务 通过发送特制的 icmp6 数据包。 该问题与处理类型为 6 或 130 的 ICMPv131 消息时发生的内存泄漏有关。

该问题自内核 5.13 以来一直存在,并在版本 5.16.13 和 5.15.27 中得到修复。 该问题不影响 Debian、SUSE、Ubuntu LTS(18.04、20.04)和 RHEL 稳定分支,它已在 Arch Linux 上修复。

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


成为第一个发表评论

发表您的评论

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

*

*

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