Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1336 CNY

100%

CVE-2025-71104— KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV timer

AI Predicted 7.5 Difficulty: Moderate EPSS 0.10% · P1

Affected Version Matrix 20

VendorProductVersion RangeStatus
LinuxLinuxd8f2f498d9ed0c5010bc1bbc1146f94c8bf9f8cc< 786ed625c125c5cd180d6aaa37e653e3e4ffb8d9affected
d8f2f498d9ed0c5010bc1bbc1146f94c8bf9f8cc< d2da0df7bbc4fb4fd7d0a1da704f81a09c72fe73affected
d8f2f498d9ed0c5010bc1bbc1146f94c8bf9f8cc< 807dbe8f3862fa7c164155857550ce94b36a11b9affected
d8f2f498d9ed0c5010bc1bbc1146f94c8bf9f8cc< 7b54ccef865e0aa62e4871d4ada2ba4b9dcb8bedaffected
d8f2f498d9ed0c5010bc1bbc1146f94c8bf9f8cc< e746e51947053a02af2ea964593dc4887108d379affected
d8f2f498d9ed0c5010bc1bbc1146f94c8bf9f8cc< e23f46f1a971c73dad2fd63e1408696114ddebe2affected
d8f2f498d9ed0c5010bc1bbc1146f94c8bf9f8cc< 18ab3fc8e880791aa9f7c000261320fc812b5465affected
421e1fadb0b0a648cc75afd5b3c826fa7daeaffcaffected
… +12 more rows
Get alerts for future matching vulnerabilitiesLog in to subscribe

I. Basic Information for CVE-2025-71104

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV timer
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV timer When advancing the target expiration for the guest's APIC timer in periodic mode, set the expiration to "now" if the target expiration is in the past (similar to what is done in update_target_expiration()). Blindly adding the period to the previous target expiration can result in KVM generating a practically unbounded number of hrtimer IRQs due to programming an expired timer over and over. In extreme scenarios, e.g. if userspace pauses/suspends a VM for an extended duration, this can even cause hard lockups in the host. Currently, the bug only affects Intel CPUs when using the hypervisor timer (HV timer), a.k.a. the VMX preemption timer. Unlike the software timer, a.k.a. hrtimer, which KVM keeps running even on exits to userspace, the HV timer only runs while the guest is active. As a result, if the vCPU does not run for an extended duration, there will be a huge gap between the target expiration and the current time the vCPU resumes running. Because the target expiration is incremented by only one period on each timer expiration, this leads to a series of timer expirations occurring rapidly after the vCPU/VM resumes. More critically, when the vCPU first triggers a periodic HV timer expiration after resuming, advancing the expiration by only one period will result in a target expiration in the past. As a result, the delta may be calculated as a negative value. When the delta is converted into an absolute value (tscdeadline is an unsigned u64), the resulting value can overflow what the HV timer is capable of programming. I.e. the large value will exceed the VMX Preemption Timer's maximum bit width of cpu_preemption_timer_multi + 32, and thus cause KVM to switch from the HV timer to the software timer (hrtimers). After switching to the software timer, periodic timer expiration callbacks may be executed consecutively within a single clock interrupt handler, because hrtimers honors KVM's request for an expiration in the past and immediately re-invokes KVM's callback after reprogramming. And because the interrupt handler runs with IRQs disabled, restarting KVM's hrtimer over and over until the target expiration is advanced to "now" can result in a hard lockup. E.g. the following hard lockup was triggered in the host when running a Windows VM (only relevant because it used the APIC timer in periodic mode) after resuming the VM from a long suspend (in the host). NMI watchdog: Watchdog detected hard LOCKUP on cpu 45 ... RIP: 0010:advance_periodic_target_expiration+0x4d/0x80 [kvm] ... RSP: 0018:ff4f88f5d98d8ef0 EFLAGS: 00000046 RAX: fff0103f91be678e RBX: fff0103f91be678e RCX: 00843a7d9e127bcc RDX: 0000000000000002 RSI: 0052ca4003697505 RDI: ff440d5bfbdbd500 RBP: ff440d5956f99200 R08: ff2ff2a42deb6a84 R09: 000000000002a6c0 R10: 0122d794016332b3 R11: 0000000000000000 R12: ff440db1af39cfc0 R13: ff440db1af39cfc0 R14: ffffffffc0d4a560 R15: ff440db1af39d0f8 FS: 00007f04a6ffd700(0000) GS:ff440db1af380000(0000) knlGS:000000e38a3b8000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000d5651feff8 CR3: 000000684e038002 CR4: 0000000000773ee0 PKRU: 55555554 Call Trace: <IRQ> apic_timer_fn+0x31/0x50 [kvm] __hrtimer_run_queues+0x100/0x280 hrtimer_interrupt+0x100/0x210 ? ttwu_do_wakeup+0x19/0x160 smp_apic_timer_interrupt+0x6a/0x130 apic_timer_interrupt+0xf/0x20 </IRQ> Moreover, if the suspend duration of the virtual machine is not long enough to trigger a hard lockup in this scenario, since commit 98c25ead5eda ("KVM: VMX: Move preemption timer <=> hrtimer dance to common x86"), KVM will continue using the software timer until the guest reprograms the APIC timer in some way. Since the periodic timer does not require frequent APIC timer register programming, the guest may continue to use the software timer in ---truncated---
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于在周期性HV计时器模式下,未正确处理过期的目标到期时间,可能导致主机硬锁死。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

VendorProductAffected VersionsCPESubscribe
LinuxLinux d8f2f498d9ed0c5010bc1bbc1146f94c8bf9f8cc ~ 786ed625c125c5cd180d6aaa37e653e3e4ffb8d9 -
LinuxLinux 4.17 -

II. Public POCs for CVE-2025-71104

#POC DescriptionSource LinkShenlong Link
AI-Generated POCPremium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2025-71104

登录查看更多情报信息。

Same Patch Batch · Linux · 2026-01-14 · 43 CVEs total

CVE-2025-711169.1 CRITICALlibceph: make decode_pool() more resilient against corrupted osdmaps
CVE-2025-711128.8 HIGHnet: hns3: add VLAN id validation before using
CVE-2025-711307.8 HIGHdrm/i915/gem: Zero-initialize the eb.vma array in i915_gem_do_execbuffer
CVE-2025-711207.5 HIGHSUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in gss_read_proxy_verf
CVE-2025-711267.5 HIGHmptcp: avoid deadlock on fallback while reinjecting
CVE-2025-711287.5 HIGHerspan: Initialize options_len before referencing options.
CVE-2025-711317.5 HIGHcrypto: seqiv - Do not use req->iv after crypto_aead_encrypt
CVE-2025-711327.5 HIGHsmc91x: fix broken irq-context in PREEMPT_RT
CVE-2025-711277.1 HIGHwifi: mac80211: Discard Beacon frames to non-broadcast address
CVE-2025-711367.1 HIGHmedia: adv7842: Avoid possible out-of-bounds array accesses in adv7842_cp_log_status()
CVE-2025-711097.1 HIGHMIPS: ftrace: Fix memory corruption when kernel is located beyond 32 bits
CVE-2025-71108usb: typec: ucsi: Handle incorrect num_connectors capability
CVE-2025-71111hwmon: (w83791d) Convert macros to functions to avoid TOCTOU
CVE-2025-71105f2fs: use global inline_xattr_slab instead of per-sb slab cache
CVE-2025-71115um: init cpu_tasks[] earlier
CVE-2025-71103drm/msm: adreno: fix deferencing ifpc_reglist when not declared
CVE-2025-71117block: Remove queue freezing from several sysfs store callbacks
CVE-2025-71118ACPICA: Avoid walking the Namespace if start_node is NULL
CVE-2025-71102scs: fix a wrong parameter in __scs_magic
CVE-2025-71106fs: PM: Fix reverse check in filesystems_freeze_callback()

Showing top 20 of 43 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2025-71104

Anonymous User
2026-01-15 06:08:19

Zaproxy alias impedit expedita quisquam pariatur exercitationem. Nemo rerum eveniet dolores rem quia dignissimos.


Leave a comment