{"id":24672,"date":"2026-09-16T20:32:37","date_gmt":"2026-09-16T12:32:37","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89985"},"modified":"2026-09-16T20:32:37","modified_gmt":"2026-09-16T12:32:37","slug":"cve-2026-89985","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89985","title":{"rendered":"CVE-2026-89985 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nmemcg: keep folio&#8217;s o"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>memcg: keep folio&#8217;s objcg same as its node<\/p>\n<p>memcg_reparent_objcgs() has an inherent assumption that a folio&#8217;s objcg is<br \/>\nthe objcg of the folio&#8217;s node.  Folio migration across nodes breaks that<br \/>\nassumption: the new folio simply inherits the old folio&#8217;s objcg while<br \/>\nliving on a different node.<\/p>\n<p>Once the assumption is broken, the reparenting of the folio&#8217;s objcg and<br \/>\nthe reparenting of the folio&#8217;s LRU list are no longer atomic.<br \/>\nmemcg_reparent_objcgs() handles one node per iteration and drops all the<br \/>\nlocks in between, so the objcg gets reparented in the iteration for the<br \/>\nobjcg&#8217;s node while the LRU list gets spliced in the iteration for the<br \/>\nfolio&#8217;s node.  Any LRU operation on that folio in between resolves its<br \/>\nlruvec through the objcg, and thus takes the lru_lock of the wrong memcg,<br \/>\nnot the lru_lock of the list the folio is actually on.<\/p>\n<p>Fix this by selecting the objcg by folio_nid() at charge time, and by<br \/>\nre-deriving it for the destination node in mem_cgroup_migrate() and<br \/>\nmem_cgroup_replace_folio().<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>memcg: keep folio&#8217;s objcg same as its node<\/p>\n<p>memcg_reparent_objcgs() has an inherent assumption that a folio&#8217;s objcg is<br \/>\nthe objcg of<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-24672","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/24672","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=24672"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=24672"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=24672"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}