CVE-2026-89985 in Linux信息

摘要

由 VulDB • 2026-09-16

在 Linux 内核中,已修复以下漏洞:

memcg: 保持 folio 的 objcg 与其节点一致

`memcg_reparent_objcgs()` 存在一个固有假设,即 folio 的 objcg 是该 folio 所在节点的 objcg。跨节点迁移 folio 会破坏这一假设:新 folio 在位于不同节点时,仅继承了旧 folio 的 objcg。

一旦该假设被打破,folio 的 objcg 的重父操作与 folio LRU 列表的重父操作将不再具有原子性。`memcg_reparent_objcgs()` 每次迭代处理一个节点,并在中间释放所有锁,因此 objcg 在其所属节点的迭代中被重父化,而 LRU 列表则在 folio 所在节点的迭代中被拼接(splice)。在此期间对该 folio 进行的任何 LRU 操作都会通过 objcg 解析其 lruvec,从而获取错误的 memcg 的 `lru_lock`,而非 folio 实际所在的列表的 `lru_lock`。

通过在电荷分配时按 `folio_nid()` 选择 objcg,并在 `mem_cgroup_migrate()` 和 `mem_cgroup_replace_folio()` 中为目标节点重新推导它,来修复此问题。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

来源

Might our Artificial Intelligence support you?

Check our Alexa App!