{"id":35936,"date":"2026-10-12T16:32:29","date_gmt":"2026-10-12T08:32:29","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98385"},"modified":"2026-10-12T16:32:29","modified_gmt":"2026-10-12T08:32:29","slug":"cve-2026-98385","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98385","title":{"rendered":"CVE-2026-98385 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nsched\/cache: Decouple"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>sched\/cache: Decouple sched_cache_group from mm to fix UAF<\/p>\n<p>Currently the sched cache grouping is by mm and the scheduling statistics<br \/>\nsched_cache_stat lives in the mm structure.  This ties the life cycle<br \/>\nof scheduling stats with mm.<\/p>\n<p>In account_mm_sched(), the scheduling stats are accessed by<br \/>\ntask-&gt;mm-&gt;sc_stat.  However, a task may be switching mm on one CPU when<br \/>\nanother CPU is running account_mm_sched(), and possibly accessing the<br \/>\nold mm that was freed.  This problem was found when running tests with<br \/>\nKASAN by Hyunwoo:<\/p>\n<p>  https:\/\/lore.kernel.org\/lkml\/apPb-Dr4nPYuHQOK@v4bel\/<\/p>\n<p>Instead of serializing the mm access by introducing extra acquisition of<br \/>\nrq lock in the mm free path, extract sched_cache_stat from mm_struct,<br \/>\nrename it as sched_cache_group and manage its life cycle apart from<br \/>\nmm_struct with its own ref counting.  This allows us in the next patch<br \/>\naccess sched_cache_group directly from task, and add a refcount<br \/>\non sched_cache_group when a task links to it. This prevents the use<br \/>\nafter free issue when accessing stale and released old mm and its<br \/>\nsched cache stat a task switches to a new mm while account_mm_sched()<br \/>\nis done elsewhere.<\/p>\n<p>The other benefit of this restructure is in the future, the grouping of<br \/>\ntasks to a LLC would have the flexibility to be associated with a user<br \/>\ndefined grouping, or cgroup, cookie group, numa_group or others instead<br \/>\nof just with a single mm address space.<\/p>\n<p>Rename sched_cache_stat to sched_cache_group and turn it into a refcounted<br \/>\nobject allocated from mm_struct.  The mm_struct now holds a pointer<br \/>\n(sched_cache_grp) to this object instead of embedding it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>sched\/cache: Decouple sched_cache_group from mm to fix UAF<\/p>\n<p>Currently the sched cache grouping is by mm and the scheduling statisti<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-35936","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/35936","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=35936"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=35936"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=35936"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}