北京大学的安全研究员 Ruihan Li 发现了该漏洞,并表示它影响几乎所有 Linux 内核配置且触发仅需最小能力。由 Linux 创始人 Linux Torvalds 牵头的响应团队花费大约两周的时间开发出一系列补丁修复该漏洞。Li 在GitHub 发布的文章中指出,“6月28日,在Linux 内核6.5的合并窗口期间,该修复方案被并入 Linus 树中。”Linus 提供了一条全面的合并信息,从技术角度阐明该补丁系列。
之后,这些补丁向后兼容至内核6.1.37、6.2.11和6.4.1中,“在7月1日有效地解决了‘Stack Rot’漏洞。完整的利用代码和全面的 write-up将在不晚于7月底的时间公开。”
StackRot 供 Linux 内核处理栈扩展,即自动增长或扩展运行进程的栈内存。管理 Linux 内核中虚拟内存空间的数据结构处理特定内存管理函数的方式导致RCU导致UAF(UAFBR)问题。UAFBR漏洞结合释放后使用漏洞以及Linux 内核中的读复制更新 (RCU) 机制来同步共享数据的使用。释放后使用漏洞即软件在内存引用被取消分配或释放后仍然使用它。这就使攻击者将任意代码插入已被释放但仍然被使用的内存空间。Li 提到,“低权限的本地用户可利用该漏洞攻陷内核并提升权限。”该 Linux 内核使用 RCU 机制释放或取消分配已用的内存空间。
虽然 UAFBR 漏洞可能具有危险性,但由于使用 RCU 回调时会释放内存空间,因此内存取消分配会导致某种延迟,从而使该漏洞难以利用。
Li 指出,StackRot 的利用可能是第一个成功利用 UAFBR 漏洞的利用。Li 提到,“就我所知,目前尚不存在针对 UAFBR 的可用利用。”这是 UAFBR 漏洞首次被证明可利用的第一个实例。
由 Torvalds 牵头开发的修复方案从本质上来讲是修改了内核的用户模式栈扩展代码,阻止释放后使用条件的产生。Torvalds 表示,“从技术上来讲,这实际上是我们本应该做的事情。但由于严格来讲我们不需要,所以是懒惰的结果(“投机主义”听起来更好,不是吗?)。”
原文始发于微信公众号(代码卫士):速修复!Linux 内核严重漏洞影响所有 Linux 配置
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论