<?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>Thu, 01 Oct 2026 19:28:50 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-68375 — perf/x86: Fix NULL event access and potential PEBS record loss</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2025-68375</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/x86: Fix NULL event access and potential PEBS record loss&lt;/p&gt;
&lt;p&gt;When intel_pmu_drain_pebs_icl() is called to drain PEBS records, the
perf_event_overflow() could be called to process the last PEBS record.&lt;/p&gt;
&lt;p&gt;While perf_event_overflow() could trigger the interrupt throttle and
stop all events of the group, like what the below call-chain shows.&lt;/p&gt;
&lt;p&gt;perf_event_overflow()
  -&amp;gt; __perf_event_overflow()
    -&amp;gt;__perf_event_account_interrupt()
      -&amp;gt; perf_event_throttle_group()
        -&amp;gt; perf_event_throttle()
          -&amp;gt; event-&amp;gt;pmu-&amp;gt;stop()
            -&amp;gt; x86_pmu_stop()&lt;/p&gt;
&lt;p&gt;The side effect of stopping the events is that all corresponding event
pointers in cpuc-&amp;gt;events[] array are cleared to NULL.&lt;/p&gt;
&lt;p&gt;Assume there are two PEBS events (event a and event b) in a group. When
intel_pmu_drain_pebs_icl() calls perf_event_overflow() to process the
last PEBS record of PEBS event a, interrupt throttle is triggered and
all pointers of event a and event b are cleared to NULL. Then
intel_pmu_drain_pebs_icl() tries to process the last PEBS record of
event b and encounters NULL pointer access.&lt;/p&gt;
&lt;p&gt;To avoid this issue, move cpuc-&amp;gt;events[] clearing from x86_pmu_stop()
to x86_pmu_del(). It&amp;#39;s safe since cpuc-&amp;gt;active_mask or
cpuc-&amp;gt;pebs_enabled is always checked before access the event pointer
from cpuc-&amp;gt;events[].&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/x86: Fix NULL event access and potential PEBS record loss&lt;/p&gt;
&lt;p&gt;When intel_pmu_drain_pebs_icl() is called to drain PEBS records, the
perf_event_overflow() could be called to process the last PEBS record.&lt;/p&gt;
&lt;p&gt;While perf_event_overflow() could trigger the interrupt throttle and
stop all events of the group, like what the below call-chain shows.&lt;/p&gt;
&lt;p&gt;perf_event_overflow()
  -&amp;gt; __perf_event_overflow()
    -&amp;gt;__perf_event_account_interrupt()
      -&amp;gt; perf_event_throttle_group()
        -&amp;gt; perf_event_throttle()
          -&amp;gt; event-&amp;gt;pmu-&amp;gt;stop()
            -&amp;gt; x86_pmu_stop()&lt;/p&gt;
&lt;p&gt;The side effect of stopping the events is that all corresponding event
pointers in cpuc-&amp;gt;events[] array are cleared to NULL.&lt;/p&gt;
&lt;p&gt;Assume there are two PEBS events (event a and event b) in a group. When
intel_pmu_drain_pebs_icl() calls perf_event_overflow() to process the
last PEBS record of PEBS event a, interrupt throttle is triggered and
all pointers of event a and event b are cleared to NULL. Then
intel_pmu_drain_pebs_icl() tries to process the last PEBS record of
event b and encounters NULL pointer access.&lt;/p&gt;
&lt;p&gt;To avoid this issue, move cpuc-&amp;gt;events[] clearing from x86_pmu_stop()
to x86_pmu_del(). It&amp;#39;s safe since cpuc-&amp;gt;active_mask or
cpuc-&amp;gt;pebs_enabled is always checked before access the event pointer
from cpuc-&amp;gt;events[].&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2025-68375</guid>
    </item>
  </channel>
</rss>
