CVE-2026-98385
sched/cache:将 sched_cache_group 与 mm 解耦以修复 UAF
- 已发布
- 2026年10月12日
- 已更新
- 2026年10月24日
- 分配 CNA
- Linux
- 观察到的证据
- 2026年11月4日
初级CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H低 · 未来 30 天
- 百分位
- 7.3%
- 型号日期
- 2026年11月4日
EPSS 是统计估计,而不是确定性或影响衡量标准。将其与 CVSS、KEV 状态、暴露程度和您的环境相结合。
总结
在 Linux 内核中,以下漏洞已被修复:sched/cache:将 sched_cache_group 与 mm 解耦以修复 UAF 目前,调度缓存分组基于 mm 进行,调度统计信息 sched_cache_stat 存放在 mm 结构中。这使得调度统计信息的生命周期与 mm 绑定在一起。在 account_mm_sched() 中,调度统计信息通过 task->mm->sc_stat 访问。然而,当一个任务在一个 CPU 上切换 mm 时,另一个 CPU 可能正在运行 account_mm_sched(),并可能访问已被释放的旧 mm。该问题由 Hyunwoo 在使用 KASAN 运行测试时发现:https://lore.kernel.org/lkml/apPb-Dr4nPYuHQOK@v4bel/ 为了避免通过在 mm 释放路径中额外获取 rq 锁来串行化 mm 访问,本补丁将 sched_cache_stat 从 mm_struct 中提取出来,重命名为 sched_cache_group,并通过其自身的引用计数将其生命周期与 mm_struct 分离管理。这使得我们可以在下一个补丁中直接从 task 访问 sched_cache_group,并在任务链接到该对象时对其增加引用计数。这可以防止在任务切换到新 mm 而 account_mm_sched() 在其他地方执行时,访问已过期且已释放的旧 mm 及其调度缓存统计信息所导致的释放后使用问题。此重构的另一个好处是,未来将任务分组到 LLC 时,可以灵活地关联到用户定义的分组,或 cgroup、cookie group、numa_group 等,而不再仅限于单个 mm 地址空间。将 sched_cache_stat 重命名为 sched_cache_group,并将其转换为从 mm_struct 分配、带引用计数的对象。mm_struct 现在持有指向该对象的指针(sched_cache_grp),而不再内嵌该对象。
来源
ARM64 Android port of the official PoC for CVE-2026-98385, a kernel Scheduler subsystem race-condition local privilege escalation with hardcoded heap layout constants.
负责任的使用
仅在您拥有或有权测试的系统上使用漏洞信息。 Kitploit 链接到公共研究元数据,并且不存储漏洞代码或恶意负载。