{"id":25657,"date":"2026-09-18T04:31:41","date_gmt":"2026-09-17T20:31:41","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90248"},"modified":"2026-09-18T04:31:41","modified_gmt":"2026-09-17T20:31:41","slug":"cve-2026-90248","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90248","title":{"rendered":"CVE-2026-90248 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet\/sched: cls_api: f"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net\/sched: cls_api: fix teardown of an adopted proto on insert-race loss<\/p>\n<p>In tc_new_tfilter() the create branch sets tp_created = 1 before calling<br \/>\ntcf_chain_tp_insert_unique(). When the caller loses the race (another<br \/>\nrequest inserted a proto at the same chain\/prio first), insert_unique()<br \/>\ndestroys the caller&#8217;s own tp_new and returns the winner&#8217;s proto with an<br \/>\nextra reference. tp_created was never cleared, so the loser&#8217;s errout<br \/>\npath treated the winner&#8217;s live proto as its own and called<br \/>\ntcf_chain_tp_delete_empty() on it, silently unlinking an active<br \/>\nclassifier that the winning request already advertised via<br \/>\nRTM_NEWTFILTER.<\/p>\n<p>Track the outcome of the insert step in a single tri-state variable so<br \/>\neach errout path reacts correctly:<\/p>\n<p>&#8211; TP_NOT_CREATED: no proto created; pursue the old path.<br \/>\n&#8211; TP_CREATED: proto inserted successfully; same code path as before.<br \/>\n&#8211; TP_NOT_OWNED: New &#8211; lost the insert race; tp is another request&#8217;s proto<br \/>\n  (chain ref already released by tp_new&#8217;s destroy)<\/p>\n<p>Both errout reactions are single expressions derived from the state.<\/p>\n<p>This fix is motivated by the Sashiko&#8217;s automated review of Patch<br \/>\n(net\/sched: cls_api: Always acquire rtnl_lock when destroying locked<br \/>\nclassifiers) [1][2]. The review identified the silent-unlink behaviour of<br \/>\nan adopted proto&#8217;s teardown when a request loses the<br \/>\ntcf_chain_tp_insert_unique() race.<\/p>\n<p>[1] https:\/\/sashiko.dev\/#\/patchset\/20260801125632.360365-1-jhs%40mojatatu.com<br \/>\n[2] https:\/\/netdev-ai.bots.linux.dev\/sashiko\/#\/patchset\/20260801125632.360365-1-jhs%40mojatatu.com<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net\/sched: cls_api: fix teardown of an adopted proto on insert-race loss<\/p>\n<p>In tc_new_tfilter() the create branch sets tp_created = 1<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25657","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25657","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=25657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}