<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Tue, 29 Sep 2026 04:52:49 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-90248 — net/sched: cls_api: fix teardown of an adopted proto on insert-race loss</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-90248</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;net/sched: cls_api: fix teardown of an adopted proto on insert-race loss&lt;/p&gt;
&lt;p&gt;In tc_new_tfilter() the create branch sets tp_created = 1 before calling
tcf_chain_tp_insert_unique(). When the caller loses the race (another
request inserted a proto at the same chain/prio first), insert_unique()
destroys the caller&amp;#39;s own tp_new and returns the winner&amp;#39;s proto with an
extra reference. tp_created was never cleared, so the loser&amp;#39;s errout
path treated the winner&amp;#39;s live proto as its own and called
tcf_chain_tp_delete_empty() on it, silently unlinking an active
classifier that the winning request already advertised via
RTM_NEWTFILTER.&lt;/p&gt;
&lt;p&gt;Track the outcome of the insert step in a single tri-state variable so
each errout path reacts correctly:&lt;/p&gt;
&lt;p&gt;- TP_NOT_CREATED: no proto created; pursue the old path.
- TP_CREATED: proto inserted successfully; same code path as before.
- TP_NOT_OWNED: New - lost the insert race; tp is another request&amp;#39;s proto
  (chain ref already released by tp_new&amp;#39;s destroy)&lt;/p&gt;
&lt;p&gt;Both errout reactions are single expressions derived from the state.&lt;/p&gt;
&lt;p&gt;This fix is motivated by the Sashiko&amp;#39;s automated review of Patch
(net/sched: cls_api: Always acquire rtnl_lock when destroying locked
classifiers) [1][2]. The review identified the silent-unlink behaviour of
an adopted proto&amp;#39;s teardown when a request loses the
tcf_chain_tp_insert_unique() race.&lt;/p&gt;
&lt;p&gt;[1] https://sashiko.dev/#/patchset/20260801125632.360365-1-jhs%40mojatatu.c…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Linux&lt;/p&gt;
&lt;p&gt;In the Linux kernel, the following vulnerability has been resolved:&lt;/p&gt;
&lt;p&gt;net/sched: cls_api: fix teardown of an adopted proto on insert-race loss&lt;/p&gt;
&lt;p&gt;In tc_new_tfilter() the create branch sets tp_created = 1 before calling
tcf_chain_tp_insert_unique(). When the caller loses the race (another
request inserted a proto at the same chain/prio first), insert_unique()
destroys the caller&amp;#39;s own tp_new and returns the winner&amp;#39;s proto with an
extra reference. tp_created was never cleared, so the loser&amp;#39;s errout
path treated the winner&amp;#39;s live proto as its own and called
tcf_chain_tp_delete_empty() on it, silently unlinking an active
classifier that the winning request already advertised via
RTM_NEWTFILTER.&lt;/p&gt;
&lt;p&gt;Track the outcome of the insert step in a single tri-state variable so
each errout path reacts correctly:&lt;/p&gt;
&lt;p&gt;- TP_NOT_CREATED: no proto created; pursue the old path.
- TP_CREATED: proto inserted successfully; same code path as before.
- TP_NOT_OWNED: New - lost the insert race; tp is another request&amp;#39;s proto
  (chain ref already released by tp_new&amp;#39;s destroy)&lt;/p&gt;
&lt;p&gt;Both errout reactions are single expressions derived from the state.&lt;/p&gt;
&lt;p&gt;This fix is motivated by the Sashiko&amp;#39;s automated review of Patch
(net/sched: cls_api: Always acquire rtnl_lock when destroying locked
classifiers) [1][2]. The review identified the silent-unlink behaviour of
an adopted proto&amp;#39;s teardown when a request loses the
tcf_chain_tp_insert_unique() race.&lt;/p&gt;
&lt;p&gt;[1] https://sashiko.dev/#/patchset/20260801125632.360365-1-jhs%40mojatatu.c…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-90248</guid>
    </item>
  </channel>
</rss>
