CVE-2025-37936: perf/x86/intel: KVM: Mask PEBS_ENABLE loaded for guest with vCPU's value.

Published May 20, 2025
·
Updated

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

perf/x86/intel: KVM: Mask PEBSENABLE loaded for guest with vCPU's value.

When generating the MSRIA32PEBSENABLE value that will be loaded on VM-Entry to a KVM guest, mask the value with the vCPU's desired PEBSENABLE value. Consulting only the host kernel's host vs. guest masks results in running the guest with PEBS enabled even when the guest doesn't want to use PEBS. Because KVM uses perf events to proxy the guest virtual PMU, simply looking at excludehost can't differentiate between events created by host userspace, and events created by KVM on behalf of the guest.

Running the guest with PEBS unexpectedly enabled typically manifests as crashes due to a near-infinite stream of #PFs. E.g. if the guest hasn't written MSRIA32DSAREA, the CPU will hit page faults on address '0' when trying to record PEBS events.

The issue is most easily reproduced by running perf kvm top from before commit 7b100989b4f6 ("perf evlist: Remove evlistadddefault") (after which, perf kvm top effectively stopped using PEBS). The userspace side of perf creates a guest-only PEBS event, which intelguestgetmsrs() misconstrues a guest-owned PEBS event.

Arguably, this is a userspace bug, as enabling PEBS on guest-only events simply cannot work, and userspace can kill VMs in many other ways (there is no danger to the host). However, even if this is considered to be bad userspace behavior, there's zero downside to perf/KVM restricting PEBS to guest-owned events.

Note, commit 854250329c02 ("KVM: x86/pmu: Disable guest PEBS temporarily in two rare situations") fixed the case where host userspace is profiling KVM and userspace, but missed the case where userspace is profiling only KVM.

Affected Software

142 affected componentsFixes available
Linux Linux kernel
Microsoft azl3 kernel 6.6.92.2-1
Microsoft azl3 kernel 6.6.85.1-4
Linux Linux kernel>=6.0<6.1.138
Linux Linux kernel>=6.2<6.6.90
Linux Linux kernel>=6.7<6.12.28
Linux Linux kernel>=6.13<6.14.6
Linux Linux kernel=6.15-rc1
Linux Linux kernel=6.15-rc2
Linux Linux kernel=6.15-rc3
Linux Linux kernel=6.15-rc4
Debian Debian Linux=11.0
debian/linux
6.1.176-16.1.190-16.12.107-16.12.115-27.2.12-17.2.15-1
ubuntu/linux-hwe-edge*
ubuntu/linux-aws-5.0*
ubuntu/linux-aws-5.3*
ubuntu/linux-azure*
ubuntu/linux-azure-5.3*
ubuntu/linux-azure-edge*
ubuntu/linux-gcp*
ubuntu/linux-gcp-5.3*
ubuntu/linux-gke-4.15*
ubuntu/linux-gke-5.4*
ubuntu/linux-gkeop-5.4*
ubuntu/linux-hwe*
ubuntu/linux-hwe-edge*
ubuntu/linux-oem*
ubuntu/linux-oracle-5.0*
ubuntu/linux-oracle-5.3*
ubuntu/linux-aws-5.11*
ubuntu/linux-aws-5.13*
ubuntu/linux-aws-5.8*
ubuntu/linux-azure-5.11*
ubuntu/linux-azure-5.13*
ubuntu/linux-azure-5.8*
ubuntu/linux-azure-fde*
ubuntu/linux-gcp-5.11*
ubuntu/linux-gcp-5.13*
ubuntu/linux-gcp-5.8*
ubuntu/linux-gke*
ubuntu/linux-gke-5.15*
ubuntu/linux-gkeop*
ubuntu/linux-gkeop-5.15*
ubuntu/linux-hwe-5.11*
ubuntu/linux-hwe-5.13*
ubuntu/linux-hwe-5.8*
ubuntu/linux-intel-5.13*
ubuntu/linux-oem-5.10*
ubuntu/linux-oem-5.13*
ubuntu/linux-oem-5.6*
ubuntu/linux-oracle-5.11*
ubuntu/linux-oracle-5.13*
ubuntu/linux-oracle-5.8*
ubuntu/linux-raspi2*
ubuntu/linux-riscv*
ubuntu/linux-riscv-5.11*
ubuntu/linux-riscv-5.8*
ubuntu/linux-allwinner-5.19*
ubuntu/linux-aws-5.19*
ubuntu/linux-aws-6.2*
ubuntu/linux-aws-6.5*
ubuntu/linux-aws-6.8<6.8.0-1046.49~22.04.1
6.8.0-1046.49~22.04.1
ubuntu/linux-azure-5.19*
ubuntu/linux-azure-6.2*
ubuntu/linux-azure-6.5*
ubuntu/linux-azure-6.8<6.8.0-1051.57~22.04.1
6.8.0-1051.57~22.04.1
ubuntu/linux-azure-fde-5.19*
ubuntu/linux-azure-fde-6.2*
ubuntu/linux-azure-fde-6.8<6.8.0-1046.53~22.04.1
6.8.0-1046.53~22.04.1
ubuntu/linux-gcp-5.19*
ubuntu/linux-gcp-6.2*
ubuntu/linux-gcp-6.5*
ubuntu/linux-gcp-6.8<6.8.0-1047.50~22.04.2
6.8.0-1047.50~22.04.2
ubuntu/linux-hwe-5.19*
ubuntu/linux-hwe-6.2*
ubuntu/linux-hwe-6.5*
ubuntu/linux-hwe-6.8<6.8.0-100.100~22.04.1
6.8.0-100.100~22.04.1
ubuntu/linux-ibm-6.8<6.8.0-1044.44~22.04.1
6.8.0-1044.44~22.04.1
ubuntu/linux-intel-iot-realtime*
ubuntu/linux-lowlatency-hwe-5.19*
ubuntu/linux-lowlatency-hwe-6.2*
ubuntu/linux-lowlatency-hwe-6.5*
ubuntu/linux-lowlatency-hwe-6.8<6.8.0-100.100.1~22.04.1
6.8.0-100.100.1~22.04.1
ubuntu/linux-nvidia-6.2*
ubuntu/linux-nvidia-6.5*
ubuntu/linux-nvidia-6.8<6.8.0-1046.49~22.04.1
6.8.0-1046.49~22.04.1
ubuntu/linux-oem-5.17*
ubuntu/linux-oem-6.0*
ubuntu/linux-oem-6.1*
ubuntu/linux-oem-6.5*
ubuntu/linux-oracle-6.5*
ubuntu/linux-oracle-6.8<6.8.0-1043.44~22.04.1
6.8.0-1043.44~22.04.1
ubuntu/linux-realtime*
ubuntu/linux-riscv*
ubuntu/linux-riscv-5.19*
ubuntu/linux-riscv-6.5*
ubuntu/linux-riscv-6.8<6.8.0-100.100~22.04.1
6.8.0-100.100~22.04.1
ubuntu/linux-starfive-5.19*
ubuntu/linux-starfive-6.2*
ubuntu/linux-starfive-6.5*
ubuntu/linux-realtime-6.8<6.8.1-1041.42~22.04.1
6.8.1-1041.42~22.04.1
ubuntu/linux<6.8.0-100.100
6.8.0-100.100
ubuntu/linux-aws<6.8.0-1046.49
6.8.0-1046.49
ubuntu/linux-aws-6.14<6.14.0-1009.9~24.04.1
6.14.0-1009.9~24.04.1
ubuntu/linux-azure<6.8.0-1046.52
6.8.0-1046.52
ubuntu/linux-azure-6.11*
ubuntu/linux-azure-fde<6.8.0-1046.53
6.8.0-1046.53
ubuntu/linux-azure-nvidia*
ubuntu/linux-gcp<6.8.0-1047.50
6.8.0-1047.50
ubuntu/linux-gcp-6.11*
ubuntu/linux-gcp-6.14<6.14.0-1011.11~24.04.1
6.14.0-1011.11~24.04.1
ubuntu/linux-gke<6.8.0-1043.48
6.8.0-1043.48
ubuntu/linux-gkeop<6.8.0-1030.33
6.8.0-1030.33
ubuntu/linux-hwe-6.11*
ubuntu/linux-ibm<6.8.0-1044.44
6.8.0-1044.44
ubuntu/linux-intel*
ubuntu/linux-lowlatency<6.8.0-100.100.1
6.8.0-100.100.1
ubuntu/linux-lowlatency-hwe-6.11*
ubuntu/linux-nvidia<6.8.0-1046.49
6.8.0-1046.49
ubuntu/linux-nvidia-6.11*
ubuntu/linux-nvidia-lowlatency<6.8.0-1046.49.1
6.8.0-1046.49.1
ubuntu/linux-nvidia-tegra<6.8.0-1020.20
6.8.0-1020.20
ubuntu/linux-oem-6.11*
ubuntu/linux-oem-6.14<6.14.0-1007.7
6.14.0-1007.7
ubuntu/linux-oem-6.8*
ubuntu/linux-oracle<6.8.0-1043.44
6.8.0-1043.44
ubuntu/linux-oracle-6.14<6.14.0-1009.9~24.04.1
6.14.0-1009.9~24.04.1
ubuntu/linux-raspi<6.8.0-1047.51
6.8.0-1047.51
ubuntu/linux-raspi-realtime*
ubuntu/linux-realtime*
ubuntu/linux-riscv*
ubuntu/linux-riscv-6.14<6.14.0-24.24.1~24.04.1
6.14.0-24.24.1~24.04.1
ubuntu/linux-xilinx<6.8.0-1023.24
6.8.0-1023.24
ubuntu/linux-bluefield<6.8.0-1016.20
6.8.0-1016.20
ubuntu/linux-raspi-realtime<6.8.0-2037.38
6.8.0-2037.38
ubuntu/linux-realtime<6.8.1-1041.42
6.8.1-1041.42
ubuntu/linux-realtime-6.14<6.14.0-1010.10~24.04.1
6.14.0-1010.10~24.04.1
ubuntu/linux-aws-fips<6.8.0-1046.49+fips1
6.8.0-1046.49+fips1
ubuntu/linux-azure-fips<6.8.0-1046.52+fips1
6.8.0-1046.52+fips1
ubuntu/linux-fips<6.8.0-100.100+fips1
6.8.0-100.100+fips1
ubuntu/linux-gcp-fips<6.8.0-1047.50+fips1
6.8.0-1047.50+fips1
ubuntu/linux-azure-fde*

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.107-1Fixed in 6.12.115-2Fixed in 7.2.12-1Fixed in 7.2.15-1
  2. Upgrade

    Upgrade ubuntu/linux-aws-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1046.49~22.04.1
  3. Upgrade

    Upgrade ubuntu/linux-azure-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1051.57~22.04.1
  4. Upgrade

    Upgrade ubuntu/linux-azure-fde-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1046.53~22.04.1
  5. Upgrade

    Upgrade ubuntu/linux-gcp-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1047.50~22.04.2
  6. Upgrade

    Upgrade ubuntu/linux-hwe-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-100.100~22.04.1
  7. Upgrade

    Upgrade ubuntu/linux-ibm-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1044.44~22.04.1
  8. Upgrade

    Upgrade ubuntu/linux-lowlatency-hwe-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-100.100.1~22.04.1
  9. Upgrade

    Upgrade ubuntu/linux-nvidia-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1046.49~22.04.1
  10. Upgrade

    Upgrade ubuntu/linux-oracle-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-1043.44~22.04.1
  11. Upgrade

    Upgrade ubuntu/linux-riscv-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.0-100.100~22.04.1
  12. Upgrade

    Upgrade ubuntu/linux-realtime-6.8 to a version that resolves this vulnerability.

    Fixed in 6.8.1-1041.42~22.04.1
  13. Upgrade

    Upgrade ubuntu/linux to a version that resolves this vulnerability.

    Fixed in 6.8.0-100.100
  14. Upgrade

    Upgrade ubuntu/linux-aws to a version that resolves this vulnerability.

    Fixed in 6.8.0-1046.49
  15. Upgrade

    Upgrade ubuntu/linux-aws-6.14 to a version that resolves this vulnerability.

    Fixed in 6.14.0-1009.9~24.04.1
  16. Upgrade

    Upgrade ubuntu/linux-azure to a version that resolves this vulnerability.

    Fixed in 6.8.0-1046.52
  17. Upgrade

    Upgrade ubuntu/linux-azure-fde to a version that resolves this vulnerability.

    Fixed in 6.8.0-1046.53
  18. Upgrade

    Upgrade ubuntu/linux-gcp to a version that resolves this vulnerability.

    Fixed in 6.8.0-1047.50
  19. Upgrade

    Upgrade ubuntu/linux-gcp-6.14 to a version that resolves this vulnerability.

    Fixed in 6.14.0-1011.11~24.04.1
  20. Upgrade

    Upgrade ubuntu/linux-gke to a version that resolves this vulnerability.

    Fixed in 6.8.0-1043.48
  21. Upgrade

    Upgrade ubuntu/linux-gkeop to a version that resolves this vulnerability.

    Fixed in 6.8.0-1030.33
  22. Upgrade

    Upgrade ubuntu/linux-ibm to a version that resolves this vulnerability.

    Fixed in 6.8.0-1044.44
  23. Upgrade

    Upgrade ubuntu/linux-lowlatency to a version that resolves this vulnerability.

    Fixed in 6.8.0-100.100.1
  24. Upgrade

    Upgrade ubuntu/linux-nvidia to a version that resolves this vulnerability.

    Fixed in 6.8.0-1046.49
  25. Upgrade

    Upgrade ubuntu/linux-nvidia-lowlatency to a version that resolves this vulnerability.

    Fixed in 6.8.0-1046.49.1
  26. Upgrade

    Upgrade ubuntu/linux-nvidia-tegra to a version that resolves this vulnerability.

    Fixed in 6.8.0-1020.20
  27. Upgrade

    Upgrade ubuntu/linux-oem-6.14 to a version that resolves this vulnerability.

    Fixed in 6.14.0-1007.7
  28. Upgrade

    Upgrade ubuntu/linux-oracle to a version that resolves this vulnerability.

    Fixed in 6.8.0-1043.44
  29. Upgrade

    Upgrade ubuntu/linux-oracle-6.14 to a version that resolves this vulnerability.

    Fixed in 6.14.0-1009.9~24.04.1
  30. Upgrade

    Upgrade ubuntu/linux-raspi to a version that resolves this vulnerability.

    Fixed in 6.8.0-1047.51
  31. Upgrade

    Upgrade ubuntu/linux-riscv-6.14 to a version that resolves this vulnerability.

    Fixed in 6.14.0-24.24.1~24.04.1
  32. Upgrade

    Upgrade ubuntu/linux-xilinx to a version that resolves this vulnerability.

    Fixed in 6.8.0-1023.24
  33. Upgrade

    Upgrade ubuntu/linux-bluefield to a version that resolves this vulnerability.

    Fixed in 6.8.0-1016.20
  34. Upgrade

    Upgrade ubuntu/linux-raspi-realtime to a version that resolves this vulnerability.

    Fixed in 6.8.0-2037.38
  35. Upgrade

    Upgrade ubuntu/linux-realtime to a version that resolves this vulnerability.

    Fixed in 6.8.1-1041.42
  36. Upgrade

    Upgrade ubuntu/linux-realtime-6.14 to a version that resolves this vulnerability.

    Fixed in 6.14.0-1010.10~24.04.1
  37. Upgrade

    Upgrade ubuntu/linux-aws-fips to a version that resolves this vulnerability.

    Fixed in 6.8.0-1046.49+fips1
  38. Upgrade

    Upgrade ubuntu/linux-azure-fips to a version that resolves this vulnerability.

    Fixed in 6.8.0-1046.52+fips1
  39. Upgrade

    Upgrade ubuntu/linux-fips to a version that resolves this vulnerability.

    Fixed in 6.8.0-100.100+fips1
  40. Upgrade

    Upgrade ubuntu/linux-gcp-fips to a version that resolves this vulnerability.

    Fixed in 6.8.0-1047.50+fips1
  41. Configuration

    When generating the PEBS_ENABLE value loaded on VM-Entry to a KVM guest, mask it with the vCPU's desired PEBS_ENABLE value.

    Linux KVM x86 PMU MSR_IA32_PEBS_ENABLE = vCPU's desired PEBS_ENABLE value

Event History

May 20, 2025
CVE Published
via MITRE·03:22 PM
Data Sourced
via MITRE·03:22 PM
DescriptionSeverity
Data Sourced
via OSV·04:15 PM
DescriptionSeverityAffected Software
Event
via OSV·04:15 PM
Data Sourced
via NVD·04:15 PM
RemedyDescriptionSeverityAffected Software
Jul 11, 2025
Data Sourced
via Microsoft·07:00 AM
DescriptionSeverityWeaknessAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Peer vulnerabilities

Found alongside the following vulnerabilities.

Frequently Asked Questions

1

What is the severity of CVE-2025-37936?

CVE-2025-37936 has been classified with a medium severity level due to its impact on KVM guest performance monitoring.

2

How do I fix CVE-2025-37936?

To fix CVE-2025-37936, ensure your Linux kernel is updated to the patched version that addresses this vulnerability.

3

What systems are affected by CVE-2025-37936?

CVE-2025-37936 affects various versions of the Linux kernel running KVM guests.

4

Can CVE-2025-37936 lead to a security breach?

While CVE-2025-37936 primarily affects performance monitoring, it can potentially be exploited to manipulate guest VM behavior.

5

When was CVE-2025-37936 first published?

CVE-2025-37936 was first published in the CVE database on its assigned date in 2025.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203