{"id":3405,"date":"2026-09-04T04:59:41","date_gmt":"2026-09-03T20:59:41","guid":{"rendered":"https:\/\/www.54iter.cn\/?p=3405"},"modified":"2026-09-04T04:59:41","modified_gmt":"2026-09-03T20:59:41","slug":"cve-2026-80753","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80753","title":{"rendered":"CVE-2026-80753 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\novpn: run deferred wo"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ovpn: run deferred work on a module-owned workqueue<\/p>\n<p>ovpn queues several work items whose callbacks execute module text.<br \/>\nThese works currently run on the global system workqueues, so module<br \/>\nexit has no driver-owned drain point that guarantees the callbacks have<br \/>\nfully returned before the module text can be freed.<\/p>\n<p>Object references protect the objects used by the callbacks, but they do<br \/>\nnot prove that a workqueue function has returned. In particular, a<br \/>\nworker can drop the final reference that unblocks device teardown while<br \/>\nit is still executing ovpn code.<\/p>\n<p>Add a module-owned workqueue and queue all ovpn work items on it. During<br \/>\nmodule exit, unregister rtnl and netlink first, flush the workqueue so<br \/>\nordinary ovpn workers finish, run the final RCU barrier, and destroy the<br \/>\nworkqueue last. This keeps the workqueue available for cleanup work<br \/>\nqueued from RCU callbacks, while ensuring no ovpn work item can outlive<br \/>\nthe module text.<\/p>\n<p>The per-device delayed keepalive work remains explicitly disabled during<br \/>\nnetdev teardown (disable_delayed_work_sync in ndo_uninit), since<br \/>\nflush_workqueue does not flush delayed work that is still only pending<br \/>\non its timer.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>ovpn: run deferred work on a module-owned workqueue<\/p>\n<p>ovpn queues several work items whose callbacks execute module text.<br \/>\nThese work<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-3405","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/3405","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=3405"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3405"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}