CVE-2025-40026

CVE-2025-40026

High · published October 28, 2025

CVSS v3.1
7.9
EPSS
0%
Percentile
6.0
In the wild
Unconfirmed
What it is

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

KVM: x86: Don't (re)check L1 intercepts when completing userspace I/O

When completing emulation of instruction that generated a userspace exit

for I/O, don't recheck L1 intercepts as KVM has already finished that

phase of instruction execution, i.e. has already committed to allowing L2

to perform I/O. If L1 (or host userspace) modifies the I/O permission

bitmaps during the exit to userspace, KVM will treat the access as being

intercepted despite already having emulated the I/O access.

Pivot on EMULTYPE_NO_DECODE to detect that KVM is completing emulation.

Of the three users of EMULTYPE_NO_DECODE, only complete_emulated_io() (the

intended "recipient") can reach the code in question. gp_interception()'s

use is mutually exclusive with is_guest_mode(), and

complete_emulated_insn_gp() unconditionally pairs EMULTYPE_NO_DECODE with

EMULTYPE_SKIP.

The bad behavior was detected by a syzkaller program that toggles port I/O

interception during the userspace I/O exit, ultimately resulting in a WARN

on vcpu->arch.pio.count being non-zero due to KVM no completing emulation

of the I/O instruction.

WARNING: CPU: 23 PID: 1083 at arch/x86/kvm/x86.c:8039 emulator_pio_in_out+0x154/0x170 [kvm]

Modules linked in: kvm_intel kvm irqbypass

CPU: 23 UID: 1000 PID: 1083 Comm: repro Not tainted 6.16.0-rc5-c1610d2d66b1-next-vm #74 NONE

Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015

RIP: 0010:emulator_pio_in_out+0x154/0x170 [kvm]

PKRU: 55555554

Call Trace:

<TASK>

kvm_fast_pio+0xd6/0x1d0 [kvm]

vmx_handle_exit+0x149/0x610 [kvm_intel]

kvm_arch_vcpu_ioctl_run+0xda8/0x1ac0 [kvm]

kvm_vcpu_ioctl+0x244/0x8c0 [kvm]

__x64_sys_ioctl+0x8a/0xd0

do_syscall_64+0x5d/0xc60

entry_SYSCALL_64_after_hwframe+0x4b/0x53

</TASK>

The record
Technical detail
CVSS v3.1
7.9 · HIGH
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:H
CVSS v4.0
Not supplied
EPSS
0.00170 · 6.0th percentile
Published
2025-10-28T14:15Z
References (9)
EPSS history
Timeline
  • 28 OCT 09:32Z
    KVM: x86: Don't (re)check L1 intercepts when completing userspace I/O
    cvelistv5