<?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://db.gcve.eu</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, 03 Nov 2026 09:23:51 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98688 — thunderbolt: Fix NULL dereference in tb_remove_work()</title>
      <link>https://db.gcve.eu/vuln/cve-2026-98688</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;thunderbolt: Fix NULL dereference in tb_remove_work()&lt;/p&gt;
&lt;p&gt;There is a slight race between tb_remove_work() and tb_domain_remove()
which leads to dereferencing a NULL tb-&amp;gt;root_switch pointer inside
tb_free_unplugged_xdomains():&lt;/p&gt;
&lt;p&gt;Thread A                            Thread B&lt;/p&gt;
&lt;p&gt;tb_remove_work()
                                    tb_domain_remove()
                                      mutex_lock(&amp;amp;tb-&amp;gt;lock)
                                      tb_stop()
                                        /* doesn&amp;#39;t cancel a running callback */
                                        cancel_delayed_work(&amp;amp;tcm-&amp;gt;remove_work)
                                        ...
                                        tb_switch_remove(tb-&amp;gt;root_switch)
                                        tb-&amp;gt;root_switch = NULL
                                      mutex_unlock(&amp;amp;tb-&amp;gt;lock)
    mutex_lock(&amp;amp;tb-&amp;gt;lock)
    ...
    /* without checking -&amp;gt;root_switch */
    tb_free_unplugged_xdomains(tb-&amp;gt;root_switch)
    mutex_unlock(&amp;amp;tb-&amp;gt;lock)&lt;/p&gt;
&lt;p&gt;Commit a8937f35cf39 (&amp;#34;thunderbolt: Remove XDomain from the bus without
holding tb-&amp;gt;lock&amp;#34;) doesn&amp;#39;t seem right to move tb_free_unplugged_xdomains()
out of the &amp;amp;tb-&amp;gt;lock section and the check for tb-&amp;gt;root_switch, in
particular.  It states:&lt;/p&gt;
&lt;p&gt;For this reason separate removing the XDomain from the topology data
  structures (where we need the lock) from unregistering the device from
  the bus (where remove callbacks…&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;thunderbolt: Fix NULL dereference in tb_remove_work()&lt;/p&gt;
&lt;p&gt;There is a slight race between tb_remove_work() and tb_domain_remove()
which leads to dereferencing a NULL tb-&amp;gt;root_switch pointer inside
tb_free_unplugged_xdomains():&lt;/p&gt;
&lt;p&gt;Thread A                            Thread B&lt;/p&gt;
&lt;p&gt;tb_remove_work()
                                    tb_domain_remove()
                                      mutex_lock(&amp;amp;tb-&amp;gt;lock)
                                      tb_stop()
                                        /* doesn&amp;#39;t cancel a running callback */
                                        cancel_delayed_work(&amp;amp;tcm-&amp;gt;remove_work)
                                        ...
                                        tb_switch_remove(tb-&amp;gt;root_switch)
                                        tb-&amp;gt;root_switch = NULL
                                      mutex_unlock(&amp;amp;tb-&amp;gt;lock)
    mutex_lock(&amp;amp;tb-&amp;gt;lock)
    ...
    /* without checking -&amp;gt;root_switch */
    tb_free_unplugged_xdomains(tb-&amp;gt;root_switch)
    mutex_unlock(&amp;amp;tb-&amp;gt;lock)&lt;/p&gt;
&lt;p&gt;Commit a8937f35cf39 (&amp;#34;thunderbolt: Remove XDomain from the bus without
holding tb-&amp;gt;lock&amp;#34;) doesn&amp;#39;t seem right to move tb_free_unplugged_xdomains()
out of the &amp;amp;tb-&amp;gt;lock section and the check for tb-&amp;gt;root_switch, in
particular.  It states:&lt;/p&gt;
&lt;p&gt;For this reason separate removing the XDomain from the topology data
  structures (where we need the lock) from unregistering the device from
  the bus (where remove callbacks…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-98688</guid>
    </item>
  </channel>
</rss>
