<?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>Thu, 12 Nov 2026 08:22:31 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-98552 — perf/core: Fix a refcount leak in attach_perf_ctx_data()</title>
      <link>https://db.gcve.eu/vuln/cve-2026-98552</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;perf/core: Fix a refcount leak in attach_perf_ctx_data()&lt;/p&gt;
&lt;p&gt;The attach_perf_ctx_data() can race on global and !global cases.  The
global case is protected by global_ctx_data_rwsem and shares a single
reference count using perf_ctx_data.global field.&lt;/p&gt;
&lt;p&gt;But when it races with !global case, it may miss to set the global field
and result in a reference count leak.&lt;/p&gt;
&lt;p&gt;CPU1                                  CPU2
 ----------------------------------------------------------------
 attach_task_ctx_data(.global=1)       attach_task_ctx_data(.global=0)
   cd1 = alloc_perf_ctx_data();          cd2 = alloc_perf_ctx_data();
                                         //    { .global = 0, .refcount = 1 };&lt;/p&gt;
&lt;p&gt;try_cmpxchg(); // success,
                                         // task-&amp;gt;perf_ctx_data = cd2
   try_cmpxhg(); // fail; old = cd2
   refcount_inc_not_zero(&amp;amp;old-&amp;gt;refcount); // success
     // old.refcount = 2
   free_perf_ctx_data(cd1);&lt;/p&gt;
&lt;p&gt;Then later detach_global_ctx_data() will see the data but it&amp;#39;s not
marked as global, so it won&amp;#39;t call detach_task_ctx_data().&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;perf/core: Fix a refcount leak in attach_perf_ctx_data()&lt;/p&gt;
&lt;p&gt;The attach_perf_ctx_data() can race on global and !global cases.  The
global case is protected by global_ctx_data_rwsem and shares a single
reference count using perf_ctx_data.global field.&lt;/p&gt;
&lt;p&gt;But when it races with !global case, it may miss to set the global field
and result in a reference count leak.&lt;/p&gt;
&lt;p&gt;CPU1                                  CPU2
 ----------------------------------------------------------------
 attach_task_ctx_data(.global=1)       attach_task_ctx_data(.global=0)
   cd1 = alloc_perf_ctx_data();          cd2 = alloc_perf_ctx_data();
                                         //    { .global = 0, .refcount = 1 };&lt;/p&gt;
&lt;p&gt;try_cmpxchg(); // success,
                                         // task-&amp;gt;perf_ctx_data = cd2
   try_cmpxhg(); // fail; old = cd2
   refcount_inc_not_zero(&amp;amp;old-&amp;gt;refcount); // success
     // old.refcount = 2
   free_perf_ctx_data(cd1);&lt;/p&gt;
&lt;p&gt;Then later detach_global_ctx_data() will see the data but it&amp;#39;s not
marked as global, so it won&amp;#39;t call detach_task_ctx_data().&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/cve-2026-98552</guid>
    </item>
  </channel>
</rss>
