<?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>Wed, 30 Sep 2026 03:44:10 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-90107 — net/smc: free pending qentry in smc_llc_flow_stop() before memset</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-90107</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/smc: free pending qentry in smc_llc_flow_stop() before memset&lt;/p&gt;
&lt;p&gt;smc_llc_flow_stop() resets a flow struct with a blind memset:&lt;/p&gt;
&lt;p&gt;spin_lock_bh(&amp;amp;lgr-&amp;gt;llc_flow_lock);
	memset(flow, 0, sizeof(*flow));
	flow-&amp;gt;type = SMC_LLC_FLOW_NONE;
	spin_unlock_bh(&amp;amp;lgr-&amp;gt;llc_flow_lock);&lt;/p&gt;
&lt;p&gt;If flow-&amp;gt;qentry is non-NULL at this point the pointer is overwritten without the
allocation being freed, leaking one kmalloc object.&lt;/p&gt;
&lt;p&gt;A late-arriving duplicate CONFIRM_LINK or ADD_LINK_CONT message can set
flow-&amp;gt;qentry after the legitimate message has been consumed by the waiter via
smc_llc_flow_qentry_clr() (which NULLs the pointer but leaves flow-&amp;gt;type
non-zero) but before the flow completes and smc_llc_flow_stop() runs.  In that
window the duplicate is stashed into flow-&amp;gt;qentry, and then lost when
smc_llc_flow_stop() zeros the struct.&lt;/p&gt;
&lt;p&gt;Call smc_llc_flow_qentry_del() inside the lock before the memset.
smc_llc_flow_qentry_del() already checks flow-&amp;gt;qentry before freeing, so the
normal case where no entry is pending is a no-op.&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/smc: free pending qentry in smc_llc_flow_stop() before memset&lt;/p&gt;
&lt;p&gt;smc_llc_flow_stop() resets a flow struct with a blind memset:&lt;/p&gt;
&lt;p&gt;spin_lock_bh(&amp;amp;lgr-&amp;gt;llc_flow_lock);
	memset(flow, 0, sizeof(*flow));
	flow-&amp;gt;type = SMC_LLC_FLOW_NONE;
	spin_unlock_bh(&amp;amp;lgr-&amp;gt;llc_flow_lock);&lt;/p&gt;
&lt;p&gt;If flow-&amp;gt;qentry is non-NULL at this point the pointer is overwritten without the
allocation being freed, leaking one kmalloc object.&lt;/p&gt;
&lt;p&gt;A late-arriving duplicate CONFIRM_LINK or ADD_LINK_CONT message can set
flow-&amp;gt;qentry after the legitimate message has been consumed by the waiter via
smc_llc_flow_qentry_clr() (which NULLs the pointer but leaves flow-&amp;gt;type
non-zero) but before the flow completes and smc_llc_flow_stop() runs.  In that
window the duplicate is stashed into flow-&amp;gt;qentry, and then lost when
smc_llc_flow_stop() zeros the struct.&lt;/p&gt;
&lt;p&gt;Call smc_llc_flow_qentry_del() inside the lock before the memset.
smc_llc_flow_qentry_del() already checks flow-&amp;gt;qentry before freeing, so the
normal case where no entry is pending is a no-op.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-90107</guid>
    </item>
  </channel>
</rss>
