<?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>Fri, 02 Oct 2026 09:48:47 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-46025 — mm/damon/core: fix damon_call() vs kdamond_fn() exit race</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2026-46025</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;mm/damon/core: fix damon_call() vs kdamond_fn() exit race&lt;/p&gt;
&lt;p&gt;Patch series &amp;#34;mm/damon/core: fix damon_call()/damos_walk() vs kdmond exit
race&amp;#34;.&lt;/p&gt;
&lt;p&gt;damon_call() and damos_walk() can leak memory and/or deadlock when they
race with kdamond terminations.  Fix those.&lt;/p&gt;
&lt;p&gt;This patch (of 2);&lt;/p&gt;
&lt;p&gt;When kdamond_fn() main loop is finished, the function cancels all
remaining damon_call() requests and unset the damon_ctx-&amp;gt;kdamond so that
API callers and API functions themselves can know the context is
terminated.  damon_call() adds the caller&amp;#39;s request to the queue first. 
After that, it shows if the kdamond of the damon_ctx is still running
(damon_ctx-&amp;gt;kdamond is set).  Only if the kdamond is running, damon_call()
starts waiting for the kdamond&amp;#39;s handling of the newly added request.&lt;/p&gt;
&lt;p&gt;The damon_call() requests registration and damon_ctx-&amp;gt;kdamond unset are
protected by different mutexes, though.  Hence, damon_call() could race
with damon_ctx-&amp;gt;kdamond unset, and result in deadlocks.&lt;/p&gt;
&lt;p&gt;For example, let&amp;#39;s suppose kdamond successfully finished the damon_call()
requests cancelling.  Right after that, damon_call() is called for the
context.  It registers the new request, and shows the context is still
running, because damon_ctx-&amp;gt;kdamond unset is not yet done.  Hence the
damon_call() caller starts waiting for the handling of the request. 
However, the kdamond is already on the termination steps, so it never
handles the new request.  As a r…&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;mm/damon/core: fix damon_call() vs kdamond_fn() exit race&lt;/p&gt;
&lt;p&gt;Patch series &amp;#34;mm/damon/core: fix damon_call()/damos_walk() vs kdmond exit
race&amp;#34;.&lt;/p&gt;
&lt;p&gt;damon_call() and damos_walk() can leak memory and/or deadlock when they
race with kdamond terminations.  Fix those.&lt;/p&gt;
&lt;p&gt;This patch (of 2);&lt;/p&gt;
&lt;p&gt;When kdamond_fn() main loop is finished, the function cancels all
remaining damon_call() requests and unset the damon_ctx-&amp;gt;kdamond so that
API callers and API functions themselves can know the context is
terminated.  damon_call() adds the caller&amp;#39;s request to the queue first. 
After that, it shows if the kdamond of the damon_ctx is still running
(damon_ctx-&amp;gt;kdamond is set).  Only if the kdamond is running, damon_call()
starts waiting for the kdamond&amp;#39;s handling of the newly added request.&lt;/p&gt;
&lt;p&gt;The damon_call() requests registration and damon_ctx-&amp;gt;kdamond unset are
protected by different mutexes, though.  Hence, damon_call() could race
with damon_ctx-&amp;gt;kdamond unset, and result in deadlocks.&lt;/p&gt;
&lt;p&gt;For example, let&amp;#39;s suppose kdamond successfully finished the damon_call()
requests cancelling.  Right after that, damon_call() is called for the
context.  It registers the new request, and shows the context is still
running, because damon_ctx-&amp;gt;kdamond unset is not yet done.  Hence the
damon_call() caller starts waiting for the handling of the request. 
However, the kdamond is already on the termination steps, so it never
handles the new request.  As a r…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2026-46025</guid>
    </item>
  </channel>
</rss>
