{"id":21470,"date":"2026-09-12T04:31:13","date_gmt":"2026-09-11T20:31:13","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89548"},"modified":"2026-09-12T04:31:13","modified_gmt":"2026-09-11T20:31:13","slug":"cve-2026-89548","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-89548","title":{"rendered":"CVE-2026-89548 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nSUNRPC: always drain"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>SUNRPC: always drain cache_cleaner before destroying a cache_detail<\/p>\n<p>sunrpc_destroy_cache_detail() only cancels the global cache_cleaner<br \/>\ndelayed_work when cache_list is empty.  During per-netns teardown<br \/>\ncache_list is never empty because init_net&#8217;s caches remain registered,<br \/>\nso the cancel never fires.  After unlink, the caller proceeds to<br \/>\ncache_destroy_net() which kfrees the cache_detail while cache_clean()<br \/>\nmay still hold a dangling pointer to it.  The result is a<br \/>\nuse-after-free: cache_dequeue() takes cd-&gt;queue_lock on freed memory,<br \/>\nand cache_put() dereferences cd-&gt;cache_put as a function pointer from<br \/>\nfreed slab.<\/p>\n<p>Drop the list_empty guard so that cancel_delayed_work_sync() always<br \/>\nruns, ensuring any in-flight cache_clean() completes before the<br \/>\ncache_detail is freed.  Re-arm the cleaner afterwards if other caches<br \/>\nare still registered.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>SUNRPC: always drain cache_cleaner before destroying a cache_detail<\/p>\n<p>sunrpc_destroy_cache_detail() only cancels the global cache_cl<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-21470","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/21470","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=21470"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=21470"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=21470"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}