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

KVM: x86/mmu: Cope with the SS bit being set in #NPF exit codes

When running Hyper-V from Windows 11, KVM is seeing the SS bit set
in nested page fault error codes produced for shadowed NPT. The AMD
manual is unclear about when SS is set, including whether it can be set
when SupervisorShadowStackEn (bit 6) is not set in the MISC_CTL field
of the VMCB.

Nevertheless, the unexpected SS bit causes out of bounds accesses in
permission_fault(), seen as either WARNs or UBSAN reports:

kernel: UBSAN: array-index-out-of-bounds in arch/x86/kvm/mmu.h:225:27
kernel: index 34 is out of range for type 'u16 [16]'

(in this case, the page fault error code is 34*2=0x44, i.e. SS|U; the
report shows SS|U|W happening as well). Fix the handling of unknown
error codes by dropping SS and (with a WARN) any bits not among those
that permission_fault() expects to receive.

At the same time, given the uncertainty about when hardware sets SS,
follow the processor's behavior when constructing the fault's error
code, and preserve the SS bit as passed to FNAME(walk_addr_generic).
While the behavior is surprising, there's a possibility that Hyper-V
expects it (Hyper-V does not even enable CET unless it finds MBEC/GMET!),
so retain the information when reflecting the fault to L1 instead of
unconditionally discarding it.

Bisection shows that this started happening with commit 687ee95c1b6d ("KVM:
nSVM: enable GMET for guests"), even though SHSTK was available to guests
since Linux 6.18. However, this is not because bit 1 of MISC_CTL (GMET)
somehow enables reporting the SS bit; rather, it's simply that Hyper-V
never uses CET unless GMET is also present. The WARN is reproducible
even with gmet=0, with some hacking of kvm-unit-tests's cet.c testcase
to ensure that the first access to the shadow stack triggers a page fault.
Published: 2026-10-28
Score: n/a
EPSS: n/a
KEV: No
Impact: Memory corruption through out‑of‑bounds KVM page‑fault handling
Action: Apply patch
AI Analysis

Impact

A KVM kernel bug causes the SS bit to be incorrectly handled in nested page‑fault error codes, leading to array‑index‑out‑of‑bounds checks inside permission_fault(). This can trigger out‑of‑bounds memory accesses that may lead to kernel memory corruption, potentially enabling privilege escalation or denial of service. The vulnerability manifests when a Linux KVM host encounters a Hyper‑V guest that generates a nested page fault with an unexpected SS bit in the error code. The bug is confined to the kernel’s page‑fault handling logic and does not provide a direct user‑land interface.

Affected Systems

Linux distributions that ship the Linux kernel with KVM support, particularly hosts running version 6.18 or newer that use the nSVM path and run Hyper‑V guests on Windows 11. The issue is limited to kernels that include the faulty commit sequence and do not contain the subsequent fix.

Risk and Exploitability

The problem requires the guest to trigger a nested page fault that carries an unexpected SS bit; therefore the attack surface is fairly narrow and would typically be exercised only by a malicious or misconfigured guest. No CVSS score or EPSS value is provided, and the vulnerability is not listed in the CISA KEV catalog. While the impact of exploitation could be severe due to potential kernel corruption, the likelihood of exploitation in the wild appears low at present.

Generated by OpenCVE AI on October 28, 2026 at 11:46 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the host Linux kernel to a version that includes the fix for the SS‑bit handling in KVM’s nested page‑fault path. Would automatically address the out‑of‑bounds array index issue.
  • If an upgrade cannot be applied immediately, avoid running Hyper‑V guests that enable CET on the affected KVM host, as the bug is triggered when Hyper‑V generates nested page faults with the SS bit set. This reduces the possibility of the fault being triggered.
  • Continuously monitor the kernel log for WARN or UBSAN messages about "array-index-out-of-bounds" related to arch/x86/kvm/mmu.h; any occurrence should prompt verification of the kernel version and consideration of an upgrade.

Generated by OpenCVE AI on October 28, 2026 at 11:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 28 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
First Time appeared Linux linux
Vendors & Products Linux linux

Wed, 28 Oct 2026 10:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: KVM: x86/mmu: Cope with the SS bit being set in #NPF exit codes When running Hyper-V from Windows 11, KVM is seeing the SS bit set in nested page fault error codes produced for shadowed NPT. The AMD manual is unclear about when SS is set, including whether it can be set when SupervisorShadowStackEn (bit 6) is not set in the MISC_CTL field of the VMCB. Nevertheless, the unexpected SS bit causes out of bounds accesses in permission_fault(), seen as either WARNs or UBSAN reports: kernel: UBSAN: array-index-out-of-bounds in arch/x86/kvm/mmu.h:225:27 kernel: index 34 is out of range for type 'u16 [16]' (in this case, the page fault error code is 34*2=0x44, i.e. SS|U; the report shows SS|U|W happening as well). Fix the handling of unknown error codes by dropping SS and (with a WARN) any bits not among those that permission_fault() expects to receive. At the same time, given the uncertainty about when hardware sets SS, follow the processor's behavior when constructing the fault's error code, and preserve the SS bit as passed to FNAME(walk_addr_generic). While the behavior is surprising, there's a possibility that Hyper-V expects it (Hyper-V does not even enable CET unless it finds MBEC/GMET!), so retain the information when reflecting the fault to L1 instead of unconditionally discarding it. Bisection shows that this started happening with commit 687ee95c1b6d ("KVM: nSVM: enable GMET for guests"), even though SHSTK was available to guests since Linux 6.18. However, this is not because bit 1 of MISC_CTL (GMET) somehow enables reporting the SS bit; rather, it's simply that Hyper-V never uses CET unless GMET is also present. The WARN is reproducible even with gmet=0, with some hacking of kvm-unit-tests's cet.c testcase to ensure that the first access to the shadow stack triggers a page fault.
Title KVM: x86/mmu: Cope with the SS bit being set in #NPF exit codes
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-28T10:34:36.224Z

Reserved: 2026-09-25T10:25:14.393Z

Link: CVE-2026-99120

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-28T11:17:31.613

Modified: 2026-10-28T11:17:31.613

Link: CVE-2026-99120

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-28T12:15:14Z

Weaknesses

No weakness.