{"id":29040,"date":"2026-09-25T20:31:44","date_gmt":"2026-09-25T12:31:44","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97608"},"modified":"2026-09-25T20:31:44","modified_gmt":"2026-09-25T12:31:44","slug":"cve-2026-97608","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97608","title":{"rendered":"CVE-2026-97608 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: nf_log: un"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>netfilter: nf_log: unregister loggers before per-net teardown<\/p>\n<p>nf_log_syslog and nfnetlink_log unregister their per-network namespace<br \/>\noperations before unregistering their global logger backends. This<br \/>\nleaves a window where a sysctl or netlink writer can rebind the still-<br \/>\nregistered logger after the per-net pre-exit callback cleared the old<br \/>\nselection.<\/p>\n<p>The race looks like this:<\/p>\n<p>  CPU 0                                 CPU 1<br \/>\n  &#8212;-                                  &#8212;-<br \/>\n  unregister_pernet_subsys()<br \/>\n    nf_log_unset(net, logger)<br \/>\n      net-&gt;nf.nf_loggers[pf] = NULL<\/p>\n<p>                                        lock nf_log_mutex<br \/>\n                                        find logger in loggers[][]<br \/>\n                                        net-&gt;nf.nf_loggers[pf] = logger<br \/>\n                                        unlock nf_log_mutex<\/p>\n<p>  nf_log_unregister(logger)<br \/>\n    lock nf_log_mutex<br \/>\n    loggers[pf][type] = NULL<br \/>\n    unlock nf_log_mutex<br \/>\n    synchronize_rcu()<br \/>\n  module exit returns<br \/>\n  module core frees backend memory<\/p>\n<p>Later, a sysctl read or packet logging operation can dereference the<br \/>\nstale per-net logger pointer.<\/p>\n<p>Fix this by unregistering the global logger backends before tearing down<br \/>\nper-net state. Once the global registrations are gone, later writers can<br \/>\nno longer rebind the logger. unregister_pernet_subsys() already waits<br \/>\nfor an RCU grace period after the pre-exit callback clears the per-net<br \/>\nselection, while nf_log_unregister() continues to cover readers of the<br \/>\nglobal logger table.<\/p>\n<p>Apply this ordering fix to both nf_log backends that combine per-net<br \/>\nteardown with global logger registration.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>netfilter: nf_log: unregister loggers before per-net teardown<\/p>\n<p>nf_log_syslog and nfnetlink_log unregister their per-network namespa<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29040","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29040","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=29040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}