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: 4.7 Medium
EPSS: < 1% Very Low
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

The CVSS score of 4.7 places the vulnerability in the low‑to‑medium range, indicating a modest severity. The EPSS score of less than 1 % suggests a very low likelihood of exploitation. The flaw is not listed in the CISA KEV catalog. Exploitation requires a concurrent page‑split event that can be triggered by code executing in the context of KVM. Achieving the race within the kernel would most likely need at least privileged or local access, and remote exploitation is unlikely. The main consequence of a successful exploit is a kernel crash that results in a denial of service for the host system.

Generated by OpenCVE AI on October 22, 2026 at 22:02 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
  • If a patch is not immediately available, temporarily disable large page usage for KVM to avoid the race condition until the kernel is updated
  • Monitor kernel logs for messages such as "KVM: s390" crashes or panics and reboot if necessary

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

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.7, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


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-19T09:23:19.769Z

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-19T10:19:29.467

Link: CVE-2026-98650

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-18T15:20:22Z

Links: CVE-2026-98650 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-22T22:15:12Z

Weaknesses
  • CWE-362

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