CVE-2025-40181

UNRATEDCVSS · not yet scored
EchelonGraph verdictMonitorLow exploitation likelihood right now — keep watching.
  • No CVSS published and no exploitation signals yet
CISA-KEV: Not listedEPSS PROB: 0%CVSS v2: Exploit: None knownExposed: 0

A fix is available — apply it.

In the Linux kernel, the following vulnerability has been resolved:

x86/kvm: Force legacy PCI hole to UC when overriding MTRRs for TDX/SNP

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.

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.

If a SystemMemory entry is present, then the kernel's ACPI driver will auto-ioremap the region so that it can be accessed at will. However, the ACPI spec doesn't provide a way to enumerate the memory type of SystemMemory regions, i.e. there's no way to tell software that a region must be mapped as UC vs. WB, etc. As a result, Linux's ACPI driver always maps SystemMemory regions using ioremap_cache(), i.e. as WB on x86.

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.

On bare metal and non-CoCO, the conflicting requirements "work" 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's tracking due to the kernel properly handling the MTRR overrides, and thus are compatible with the drivers' requested WC/UC-.

With force WB MTRRs on SNP and TDX guests, the ACPI mappings get their requested WB if the ACPI mappings are established before the dedicated driver code attempts to initialize the device. E.g. if acpi_init() runs before the corresponding device driver is probed, ACPI's WB mapping will "win", and result in the driver's ioremap() failing because the existing WB mapping isn't compatible with the requested WC/UC-.

E.g. when a TPM is emulated by the hypervisor (ignoring the security implications of relying on what is allegedly an untrusted entity to store measurements), the TPM driver will request UC and fail:

[ 1.730459] ioremap error for 0xfed40000-0xfed45000, requested 0x2, got 0x0 [ 1.732780] tpm_tis MSFT0101:00: probe with driver tpm_tis failed with error -12

Note, the '0x2' and '0x0' values refer to "enum page_cache_mode", not x86's memtypes (which frustratingly are an almost pure inversion; 2 == WB, 0 == UC). E.g. tracing mapping requests for TPM TIS yields:

Mapping TPM TIS with req_type = 0 WARNING: CPU: 22 PID: 1 at arch/x86/mm/pat/memtype.c:530 memtype_reserve+0x2ab/0x460 Modules linked in: CPU: 22 UID: 0 PID: 1 Comm: swapper/0 Tainted: G W 6.16.0-rc7+ #2 VOLUNTARY Tainted: [W]=WARN Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/29/2025 RIP: 0010:memtype_reserve+0x2ab/0x460 __ioremap_caller+0x16d/0x3d0 ioremap_cache+0x17/0x30 x86_acpi_os_ioremap+0xe/0x20 acpi_os_map_iomem+0x1f3/0x240 acpi_os_map_memory+0xe/0x20 acpi_ex_system_memory_space_handler+0x273/0x440 acpi_ev_address_space_dispatch+0x176/0x4c0 acpi_ex_access_region+0x2ad/0x530 acpi_ex_field_datum_io+0xa2/0x4f0 acpi_ex_extract_from_field+0x296/0x3e0 acpi_ex_read_data_from_field+0xd1/0x460 acpi_ex_resolve_node_to_value+0x2ee/0x530 acpi_ex_resolve_to_value+0x1f2/0x540 acpi_ds_evaluate_name_path+0x11b/0x190 acpi_ds_exec_end_op+0x456/0x960 acpi_ps_parse_loop+0x27a/0xa50 acpi_ps_parse_aml+0x226/0x600 acpi_ps_execute_method+0x172/0x3e0 acpi_ns_evaluate+0x175/0x5f0 acpi_evaluate_object+0x213/0x490 acpi_evaluate_integer+0x6d/0x140 acpi_bus_get_status+0x93/0x150 acpi_add_single_object+0x43a/0x7c0 acpi_bus_check_add+0x149/0x3a0 acpi_bus_check_add_1+0x16/0x30 acpi_ns_walk_namespace+0x22c/0x360 acpi_walk_namespace+0x15c/0x170 acpi_bus_scan+0x1dd/0x200 acpi_scan_init+0xe5/0x2b0 acpi_init+0x264/0x5b0 do_one_i ---truncated---

CVSS v3
EchelonGraph score
Not yet assessedNo source has published severity data for this CVE yet — no CVSS score from NVD or a CNA, no GitHub advisory, and it is not in CISA KEV. This is not a rating of zero; we cannot assess it yet.
EG Score
EG Risk
EPSS PROB
0%
EPSS %ILE
9%
KEV
Not listed

Published

November 12, 2025

Last Modified

April 15, 2026

Patch Availability(5)

Vendor / EcosystemFixed in / PatchReleasedSource
ubuntulinux-virtual-hwe-24.04-edge (6.17.0-14.14) @ questing2026-05-21ubuntu
ubuntulinux-tools-oracle-64k-6.17 (6.17.0-1007.7) @ questing2026-05-21ubuntu
ubuntulinux-tools-oem-6.17 (6.17.0-1011.11) @ noble2026-05-21ubuntu
ubuntulinux-tools-azure-6.17 (6.17.0-1008.8) @ questing2026-05-21ubuntu
linuxKernel @ 6.12.54osv

Patches are aggregated from vendor advisories (Red Hat, Microsoft, Cisco, GitHub) and package ecosystems (OSV, GHSA). Multiple rows for the same upstream release have been deduplicated.

All Vendor Advisories

(4)

Every vendor that published an advisory referencing this CVE — pulled from our cve_vendor_advisories aggregation. Click any row for the vendor's original advisory page.

Data Freshness Timeline

(refreshed 6× in last 7d / 39× in last 30d)

Each row is a source pipeline that fetched or updated this CVE on that date, with what changed. For example, "NVD update" means NVD published or revised its analysis for this CVE; "MITRE cvelistV5" means we ingested or refreshed it from the CNA feed. Most recent first.

Showing the most recent 100 of 135 total refreshes for this CVE.

  1. 2026-08-04 15:09 UTCEPSS rescore
  2. 2026-08-04 10:37 UTCEPSS rescore
  3. 2026-08-03 10:35 UTCEPSS rescore
  4. 2026-08-02 02:26 UTCEPSS rescore
  5. 2026-08-01 04:15 UTCEPSS rescore
  6. 2026-07-30 16:27 UTCEPSS rescore
  7. 2026-07-30 01:29 UTCEPSS rescore
  8. 2026-07-28 15:35 UTCEPSS rescore
  9. 2026-07-27 07:09 UTCOSV refresh
  10. 2026-07-26 14:54 UTCEPSS rescore
  11. 2026-07-25 14:17 UTCEPSS rescore
  12. 2026-07-25 14:17 UTCEPSS rescore
  13. 2026-07-24 14:17 UTCEPSS rescore
  14. 2026-07-23 02:55 UTCEG score recompute
  15. 2026-07-22 14:07 UTCEPSS rescore
  16. 2026-07-22 14:07 UTCEPSS rescore
  17. 2026-07-21 15:24 UTCEPSS rescore
  18. 2026-07-20 17:07 UTCEPSS rescore
  19. 2026-07-19 14:30 UTCEPSS rescore
  20. 2026-07-19 14:30 UTCEPSS rescore
  21. 2026-07-19 02:28 UTCEPSS rescore
  22. 2026-07-19 02:28 UTCEPSS rescore
  23. 2026-07-18 10:04 UTCEPSS rescore
  24. 2026-07-18 10:04 UTCEPSS rescore
  25. 2026-07-16 17:02 UTCEPSS rescore
Show 75 more
  1. 2026-07-15 16:57 UTCEPSS rescore
  2. 2026-07-15 16:57 UTCEPSS rescore
  3. 2026-07-15 01:59 UTCEPSS rescore
  4. 2026-07-15 01:59 UTCEPSS rescore
  5. 2026-07-13 22:29 UTCEPSS rescore
  6. 2026-07-13 22:29 UTCEPSS rescore
  7. 2026-07-13 06:12 UTCEPSS rescore
  8. 2026-07-12 05:46 UTCEPSS rescore
  9. 2026-07-11 08:27 UTCEPSS rescore
  10. 2026-07-11 08:27 UTCEPSS rescore
  11. 2026-07-10 01:45 UTCOSV refresh
  12. 2026-07-09 19:09 UTCEPSS rescore
  13. 2026-07-09 19:09 UTCEPSS rescore
  14. 2026-07-07 13:45 UTCEPSS rescore
  15. 2026-07-06 16:27 UTCEPSS rescore
  16. 2026-07-06 16:27 UTCEPSS rescore
  17. 2026-07-06 02:23 UTCEPSS rescore
  18. 2026-07-05 02:30 UTCEPSS rescore
  19. 2026-07-04 06:30 UTCEPSS rescore
  20. 2026-07-01 15:06 UTCEPSS rescore
  21. 2026-07-01 15:06 UTCEPSS rescore
  22. 2026-06-30 23:22 UTCEPSS rescore
  23. 2026-06-30 23:22 UTCEPSS rescore
  24. 2026-06-29 14:06 UTCEPSS rescore
  25. 2026-06-29 14:06 UTCEPSS rescore
  26. 2026-06-28 14:07 UTCEPSS rescore
  27. 2026-06-28 14:07 UTCEPSS rescore
  28. 2026-06-28 04:55 UTCEPSS rescore
  29. 2026-06-28 04:55 UTCEPSS rescore
  30. 2026-06-27 03:08 UTCEPSS rescore
  31. 2026-06-27 03:08 UTCEPSS rescore
  32. 2026-06-25 13:49 UTCEPSS rescore
  33. 2026-06-25 13:49 UTCEPSS rescore
  34. 2026-06-24 14:04 UTCEPSS rescore
  35. 2026-06-24 14:04 UTCEPSS rescore
  36. 2026-06-23 21:32 UTCEPSS rescore
  37. 2026-06-23 21:32 UTCEPSS rescore
  38. 2026-06-22 14:25 UTCEPSS rescore
  39. 2026-06-22 14:25 UTCEPSS rescore
  40. 2026-06-21 14:56 UTCEPSS rescore
  41. 2026-06-21 14:56 UTCEPSS rescore
  42. 2026-06-21 12:31 UTCOSV refresh
  43. 2026-06-21 01:59 UTCEPSS rescore
  44. 2026-06-21 01:59 UTCEPSS rescore
  45. 2026-06-19 19:25 UTCEPSS rescore
  46. 2026-06-19 19:25 UTCEPSS rescore
  47. 2026-06-18 17:52 UTCEPSS rescore
  48. 2026-06-18 17:52 UTCEPSS rescore
  49. 2026-06-17 17:52 UTCEPSS rescore
  50. 2026-06-16 17:52 UTCEPSS rescore
  51. 2026-06-16 17:52 UTCEPSS rescore
  52. 2026-06-14 23:17 UTCEPSS rescore
  53. 2026-06-13 23:00 UTCEPSS rescore
  54. 2026-06-12 23:11 UTCEPSS rescore
  55. 2026-06-11 14:00 UTCEPSS rescore
  56. 2026-06-10 22:18 UTCEPSS rescore
  57. 2026-06-10 13:22 UTCEPSS rescore
  58. 2026-06-08 14:16 UTCEPSS rescore
  59. 2026-06-08 14:16 UTCEPSS rescore
  60. 2026-06-07 15:24 UTCEPSS rescore
  61. 2026-06-06 13:47 UTCEPSS rescore
  62. 2026-06-06 13:47 UTCEPSS rescore
  63. 2026-06-05 22:46 UTCEPSS rescore
  64. 2026-06-05 22:46 UTCEPSS rescore
  65. 2026-06-05 06:10 UTCEPSS rescore
  66. 2026-06-05 06:10 UTCEPSS rescore
  67. 2026-06-04 13:12 UTCEPSS rescore
  68. 2026-06-04 13:12 UTCEPSS rescore
  69. 2026-06-02 20:12 UTCEPSS rescore
  70. 2026-06-02 05:39 UTCOSV refresh
  71. 2026-06-01 13:51 UTCEPSS rescore
  72. 2026-06-01 13:51 UTCEPSS rescore
  73. 2026-05-31 22:30 UTCEPSS rescore
  74. 2026-05-31 22:30 UTCEPSS rescore
  75. 2026-05-31 00:16 UTCEPSS rescore

Frequently asked(4)

What is CVE-2025-40181?
CVE-2025-40181 is a publicly disclosed vulnerability published on November 12, 2025. In the Linux kernel, the following vulnerability has been resolved: x86/kvm: Force legacy PCI hole to UC when overriding MTRRs for TDX/SNP 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…
When was CVE-2025-40181 disclosed?
CVE-2025-40181 was first published in the National Vulnerability Database on November 12, 2025, with the most recent update on April 15, 2026. EchelonGraph re-ingests CVE updates from NVD on a 2-hour cycle, so this page reflects the latest published state.
Is CVE-2025-40181 actively exploited?
CVE-2025-40181 is not currently on CISA's Known Exploited Vulnerabilities catalog. FIRST EPSS estimates a 0% probability of exploitation in the next 30 days, which ranks it in the top 90.7% of all scored CVEs.
How do I remediate CVE-2025-40181?
Patch to the fixed version published by the affected vendor. Where vendor advisories exist for CVE-2025-40181, EchelonGraph cross-links them in the Vendor Advisories panel below — those typically contain the canonical remediation steps, fixed version numbers, and any vendor-specific mitigations.

Dependency Blast Radius

Explore the affected products and dependency analysis for CVE-2025-40181

Explore →

Is Your Infrastructure Affected by CVE-2025-40181?

EchelonGraph automatically scans your cloud infrastructure and maps CVE exposure using blast radius analysis.