<?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>Sun, 04 Oct 2026 08:10:09 +0000</lastBuildDate>
    <item>
      <title>CVE-2024-26992 — KVM: x86/pmu: Disable support for adaptive PEBS</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2024-26992</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;KVM: x86/pmu: Disable support for adaptive PEBS&lt;/p&gt;
&lt;p&gt;Drop support for virtualizing adaptive PEBS, as KVM&amp;#39;s implementation is
architecturally broken without an obvious/easy path forward, and because
exposing adaptive PEBS can leak host LBRs to the guest, i.e. can leak
host kernel addresses to the guest.&lt;/p&gt;
&lt;p&gt;Bug #1 is that KVM doesn&amp;#39;t account for the upper 32 bits of
IA32_FIXED_CTR_CTRL when (re)programming fixed counters, e.g
fixed_ctrl_field() drops the upper bits, reprogram_fixed_counters()
stores local variables as u8s and truncates the upper bits too, etc.&lt;/p&gt;
&lt;p&gt;Bug #2 is that, because KVM _always_ sets precise_ip to a non-zero value
for PEBS events, perf will _always_ generate an adaptive record, even if
the guest requested a basic record.  Note, KVM will also enable adaptive
PEBS in individual *counter*, even if adaptive PEBS isn&amp;#39;t exposed to the
guest, but this is benign as MSR_PEBS_DATA_CFG is guaranteed to be zero,
i.e. the guest will only ever see Basic records.&lt;/p&gt;
&lt;p&gt;Bug #3 is in perf.  intel_pmu_disable_fixed() doesn&amp;#39;t clear the upper
bits either, i.e. leaves ICL_FIXED_0_ADAPTIVE set, and
intel_pmu_enable_fixed() effectively doesn&amp;#39;t clear ICL_FIXED_0_ADAPTIVE
either.  I.e. perf _always_ enables ADAPTIVE counters, regardless of what
KVM requests.&lt;/p&gt;
&lt;p&gt;Bug #4 is that adaptive PEBS *might* effectively bypass event filters set
by the host, as &amp;#34;Updated Memory Access Info Group&amp;#34; records information
that might be disallowed…&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;KVM: x86/pmu: Disable support for adaptive PEBS&lt;/p&gt;
&lt;p&gt;Drop support for virtualizing adaptive PEBS, as KVM&amp;#39;s implementation is
architecturally broken without an obvious/easy path forward, and because
exposing adaptive PEBS can leak host LBRs to the guest, i.e. can leak
host kernel addresses to the guest.&lt;/p&gt;
&lt;p&gt;Bug #1 is that KVM doesn&amp;#39;t account for the upper 32 bits of
IA32_FIXED_CTR_CTRL when (re)programming fixed counters, e.g
fixed_ctrl_field() drops the upper bits, reprogram_fixed_counters()
stores local variables as u8s and truncates the upper bits too, etc.&lt;/p&gt;
&lt;p&gt;Bug #2 is that, because KVM _always_ sets precise_ip to a non-zero value
for PEBS events, perf will _always_ generate an adaptive record, even if
the guest requested a basic record.  Note, KVM will also enable adaptive
PEBS in individual *counter*, even if adaptive PEBS isn&amp;#39;t exposed to the
guest, but this is benign as MSR_PEBS_DATA_CFG is guaranteed to be zero,
i.e. the guest will only ever see Basic records.&lt;/p&gt;
&lt;p&gt;Bug #3 is in perf.  intel_pmu_disable_fixed() doesn&amp;#39;t clear the upper
bits either, i.e. leaves ICL_FIXED_0_ADAPTIVE set, and
intel_pmu_enable_fixed() effectively doesn&amp;#39;t clear ICL_FIXED_0_ADAPTIVE
either.  I.e. perf _always_ enables ADAPTIVE counters, regardless of what
KVM requests.&lt;/p&gt;
&lt;p&gt;Bug #4 is that adaptive PEBS *might* effectively bypass event filters set
by the host, as &amp;#34;Updated Memory Access Info Group&amp;#34; records information
that might be disallowed…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2024-26992</guid>
    </item>
  </channel>
</rss>
