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

KVM: s390: Fix potential races in dat skey functions

When dat_cond_set_storage_key() finds a large page, it will
conditionally set the storage key in absolute memory using
large_crste_to_phys() to get the absolute address.

There is a race window between dat_entry_walk() and
large_crste_to_phys(): the large page could have been split
concurrently, and large_crste_to_phys() might be called with a crste
that does not designate a large page, leading to crashes.

Similar issues were also present in dat_set_storage_key().

dat_get_storage_key() and dat_reset_reference_bit() did instead check
for a potential concurrent splitting of the large page, but then
handled it incorrectly.

Fix by performing a READ_ONCE on the crste pointer, checking and using
the result, instead of dereferencing the pointer again. In case a race
is detacted, try dat_entry_walk() again.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service (kernel crash)
Action: Apply Patch
AI Analysis

Impact

A race condition exists between the dat_entry_walk() and large_crste_to_phys() functions in the KVM s390 implementation of the Linux kernel. If a large page is split concurrently, the code may dereference a stale page table entry and attempt to write a storage key to an invalid absolute address, leading to a crash of the kernel. The crash results in a system halt or reboot, effectively denying service for the affected node. No arbitrary code execution or data compromise is exposed by this flaw, but the impact on service availability is significant.

Affected Systems

The vulnerability affects Linux kernel implementations running on the s390 architecture (IBM Z). No specific version range is provided, but the issue was fixed by recent kernel commits. Any systems that have not applied this patch and are running older kernel releases on s390 are potentially vulnerable.

Risk and Exploitability

No CVSS or EPSS score is publicly available for this vulnerability, and it is not listed in CISA KEV. The risk is therefore difficult to quantify precisely. The flaw requires a concurrent page split event that can be triggered by code executing in the context of the KVM. As the race is internal to the kernel, a local or privileged attacker would most directly exploit it; remote exploitation is unlikely. The primary consequence remains a denial of service via kernel crash rather than data breach or privilege escalation.

Generated by OpenCVE AI on October 18, 2026 at 22:31 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the patch for the dat skey race condition
  • Verify that the KVM s390 executable is linked against the updated kernel before restarting services
  • Monitor kernel logs for messages such as "KVM: s390" crashes or panics and reboot if necessary

Generated by OpenCVE AI on October 18, 2026 at 22:31 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 23:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-362

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: KVM: s390: Fix potential races in dat skey functions When dat_cond_set_storage_key() finds a large page, it will conditionally set the storage key in absolute memory using large_crste_to_phys() to get the absolute address. There is a race window between dat_entry_walk() and large_crste_to_phys(): the large page could have been split concurrently, and large_crste_to_phys() might be called with a crste that does not designate a large page, leading to crashes. Similar issues were also present in dat_set_storage_key(). dat_get_storage_key() and dat_reset_reference_bit() did instead check for a potential concurrent splitting of the large page, but then handled it incorrectly. Fix by performing a READ_ONCE on the crste pointer, checking and using the result, instead of dereferencing the pointer again. In case a race is detacted, try dat_entry_walk() again.
Title KVM: s390: Fix potential races in dat skey functions
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 Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-18T15:20:22.173Z

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

Link: CVE-2026-98650

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:18.290

Modified: 2026-10-18T16:17:18.290

Link: CVE-2026-98650

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T22:45:04Z

Weaknesses
  • CWE-362

    Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition')