{"id":25735,"date":"2026-09-18T04:31:49","date_gmt":"2026-09-17T20:31:49","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90326"},"modified":"2026-09-18T04:31:49","modified_gmt":"2026-09-17T20:31:49","slug":"cve-2026-90326","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90326","title":{"rendered":"CVE-2026-90326 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nblk-cgroup: fix race"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>blk-cgroup: fix race between policy activation and blkg destruction<\/p>\n<p>When switching an IO scheduler on a block device, blkcg_activate_policy()<br \/>\nallocates blkg_policy_data (pd) for all blkgs attached to the queue.<br \/>\nHowever, blkcg_activate_policy() may race with concurrent blkcg deletion,<br \/>\nleading to use-after-free and memory leak issues.<\/p>\n<p>The use-after-free occurs in the following race:<\/p>\n<p>T1 (blkcg_activate_policy):<br \/>\n  &#8211; Successfully allocates pd for blkg1 (loop0-&gt;queue, blkcgA)<br \/>\n  &#8211; Fails to allocate pd for blkg2 (loop0-&gt;queue, blkcgB)<br \/>\n  &#8211; Enters the enomem rollback path to release blkg1 resources<\/p>\n<p>T2 (blkcg deletion):<br \/>\n  &#8211; blkcgA is deleted concurrently<br \/>\n  &#8211; blkg1 is freed via blkg_free_workfn()<br \/>\n  &#8211; blkg1-&gt;pd is freed<\/p>\n<p>T1 (continued):<br \/>\n  &#8211; Rollback path accesses blkg1-&gt;pd-&gt;online after pd is freed<br \/>\n  &#8211; Triggers use-after-free<\/p>\n<p>In addition, blkg_free_workfn() frees pd before removing the blkg from<br \/>\nq-&gt;blkg_list. This allows blkcg_activate_policy() to allocate a new pd<br \/>\nfor a blkg that is being destroyed, leaving the newly allocated pd<br \/>\nunreachable when the blkg is finally freed.<\/p>\n<p>Fix these races by extending blkcg_mutex coverage to serialize<br \/>\nblkcg_activate_policy() rollback and blkg destruction, ensuring pd<br \/>\nlifecycle is synchronized with blkg list visibility.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>blk-cgroup: fix race between policy activation and blkg destruction<\/p>\n<p>When switching an IO scheduler on a block device, blkcg_activa<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25735","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25735","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=25735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}