<?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>Tue, 29 Sep 2026 03:30:11 +0000</lastBuildDate>
    <item>
      <title>CVE-2025-40181 — x86/kvm: Force legacy PCI hole to UC when overriding MTRRs for TDX/SNP</title>
      <link>https://vulnerability.circl.lu/vuln/cve-2025-40181</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;x86/kvm: Force legacy PCI hole to UC when overriding MTRRs for TDX/SNP&lt;/p&gt;
&lt;p&gt;When running as an SNP or TDX guest under KVM, force the legacy PCI hole,
i.e. memory between Top of Lower Usable DRAM and 4GiB, to be mapped as UC
via a forced variable MTRR range.&lt;/p&gt;
&lt;p&gt;In most KVM-based setups, legacy devices such as the HPET and TPM are
enumerated via ACPI.  ACPI enumeration includes a Memory32Fixed entry, and
optionally a SystemMemory descriptor for an OperationRegion, e.g. if the
device needs to be accessed via a Control Method.&lt;/p&gt;
&lt;p&gt;If a SystemMemory entry is present, then the kernel&amp;#39;s ACPI driver will
auto-ioremap the region so that it can be accessed at will.  However, the
ACPI spec doesn&amp;#39;t provide a way to enumerate the memory type of
SystemMemory regions, i.e. there&amp;#39;s no way to tell software that a region
must be mapped as UC vs. WB, etc.  As a result, Linux&amp;#39;s ACPI driver always
maps SystemMemory regions using ioremap_cache(), i.e. as WB on x86.&lt;/p&gt;
&lt;p&gt;The dedicated device drivers however, e.g. the HPET driver and TPM driver,
want to map their associated memory as UC or WC, as accessing PCI devices
using WB is unsupported.&lt;/p&gt;
&lt;p&gt;On bare metal and non-CoCO, the conflicting requirements &amp;#34;work&amp;#34; as firmware
configures the PCI hole (and other device memory) to be UC in the MTRRs.
So even though the ACPI mappings request WB, they are forced to UC- in the
kernel&amp;#39;s tracking due to the kernel properly handling the MTRR overrides,
and thu…&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;x86/kvm: Force legacy PCI hole to UC when overriding MTRRs for TDX/SNP&lt;/p&gt;
&lt;p&gt;When running as an SNP or TDX guest under KVM, force the legacy PCI hole,
i.e. memory between Top of Lower Usable DRAM and 4GiB, to be mapped as UC
via a forced variable MTRR range.&lt;/p&gt;
&lt;p&gt;In most KVM-based setups, legacy devices such as the HPET and TPM are
enumerated via ACPI.  ACPI enumeration includes a Memory32Fixed entry, and
optionally a SystemMemory descriptor for an OperationRegion, e.g. if the
device needs to be accessed via a Control Method.&lt;/p&gt;
&lt;p&gt;If a SystemMemory entry is present, then the kernel&amp;#39;s ACPI driver will
auto-ioremap the region so that it can be accessed at will.  However, the
ACPI spec doesn&amp;#39;t provide a way to enumerate the memory type of
SystemMemory regions, i.e. there&amp;#39;s no way to tell software that a region
must be mapped as UC vs. WB, etc.  As a result, Linux&amp;#39;s ACPI driver always
maps SystemMemory regions using ioremap_cache(), i.e. as WB on x86.&lt;/p&gt;
&lt;p&gt;The dedicated device drivers however, e.g. the HPET driver and TPM driver,
want to map their associated memory as UC or WC, as accessing PCI devices
using WB is unsupported.&lt;/p&gt;
&lt;p&gt;On bare metal and non-CoCO, the conflicting requirements &amp;#34;work&amp;#34; as firmware
configures the PCI hole (and other device memory) to be UC in the MTRRs.
So even though the ACPI mappings request WB, they are forced to UC- in the
kernel&amp;#39;s tracking due to the kernel properly handling the MTRR overrides,
and thu…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/cve-2025-40181</guid>
    </item>
  </channel>
</rss>
