CVE-2026-52968: Linux Kernel KVM s390 PCI Double-Scaling Pointer Vulnerability (CVSS 8.8)
A memory access error in the Linux kernel's KVM hypervisor implementation for IBM System z (s390) PCI device handling allows a local privileged user to read or modify kernel memory outside intended boundaries. The bug stems from incorrect pointer arithmetic that scales offsets twice when accessing internal device management tables, causing the kernel to read from or write to the wrong memory location when handling PCI device interrupts. This can crash the system or potentially allow privilege escalation on affected virtualization hosts.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 8.8 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
- Weaknesses (CWE)
- CWE-125
- Affected products
- 4 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-07-18
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: KVM: s390: pci: fix GAIT table indexing due to double-scaling pointer arithmetic kvm_s390_pci_aif_enable(), kvm_s390_pci_aif_disable(), and aen_host_forward() index the GAIT by manually multiplying the index with sizeof(struct zpci_gaite). Since aift->gait is already a struct zpci_gaite pointer, this double-scales the offset, accessing element aisb*16 instead of aisb. This causes out-of-bounds accesses when aisb >= 32 (with ZPCI_NR_DEVICES=512) Fix by removing the erroneous sizeof multiplication.
6 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
CVE-2026-52968 is a double-scaling pointer arithmetic vulnerability in the Linux kernel's KVM s390 PCI implementation. The functions kvm_s390_pci_aif_enable(), kvm_s390_pci_aif_disable(), and aen_host_forward() manually multiply an index by sizeof(struct zpci_gaite) when indexing into aift->gait, which is already typed as a struct zpci_gaite pointer. This causes the offset calculation to be scaled twice: once implicitly by pointer arithmetic and once explicitly by the manual multiplication. Consequently, accessing element aisb actually reads/writes element aisb*16. When aisb >= 32 with ZPCI_NR_DEVICES=512, this produces out-of-bounds memory access. The vulnerability is classified as CWE-125 (Out-of-bounds Read). Remediation requires removing the erroneous sizeof multiplication to rely solely on pointer arithmetic.
Business impact
On Linux systems running KVM hypervisors for IBM System z architecture (used in enterprise data centers and cloud platforms), this vulnerability enables a local attacker with user-level privileges on a guest virtual machine to corrupt host kernel memory, potentially leading to host system crash, data exfiltration, or escape from the guest context to the hypervisor layer. Organizations operating s390 virtualization environments face risk of service disruption and possible lateral movement between isolated guest systems.
Affected systems
Linux kernel versions containing the vulnerable KVM s390 PCI code are affected. The exposure requires: (1) a system running on IBM System z architecture or KVM on s390; (2) KVM hypervisor enabled; (3) PCI device pass-through or device interrupt handling in use; (4) an attacker with local user-level access to a guest VM. Server and cloud environments using s390 virtualization for mission-critical workloads are the primary targets.
Exploitability
Exploitability is relatively straightforward for a local user with guest VM access. No authentication, user interaction, or complex race conditions are required. The vulnerability is not listed in CISA's Known Exploited Vulnerabilities (KEV) catalog as of the current date, and no public proof-of-concept code is known to be circulating, but the attack surface is contained to systems with s390/KVM configurations, limiting opportunistic exploitation. The CVSS 3.1 score of 8.8 (HIGH) reflects local attack vector, low complexity, and high impact on confidentiality, integrity, and availability.
Remediation
Remove the manual sizeof(struct zpci_gaite) multiplication in the three affected functions, allowing the kernel's pointer arithmetic to handle scaling automatically. This is a minimal, low-risk code change that corrects the indexing logic without altering control flow or requiring configuration changes. Kernel maintainers have already resolved this issue; users must apply the patched kernel version released for their distribution.
Patch guidance
Identify your Linux kernel version and distribution via 'uname -r'. Check the Linux kernel security advisories or your distribution's security updates (Red Hat, Ubuntu, SUSE, etc.) for the patched kernel version addressing CVE-2026-52968. For s390 KVM deployments, prioritize testing and deploying the patched kernel to hypervisor hosts. Standard kernel update procedures (apt, yum, or zypper) apply. Verify after patching that KVM s390 PCI functionality remains operational in your test environment before production deployment.
Detection guidance
Kernel-level monitoring: enable audit logs for memory access violations or out-of-bounds exceptions in the KVM s390 PCI subsystem. Monitor for unexpected kernel oops or segmentation faults related to zpci_gaite structures or GAIT table operations. Guest-to-host escape attempts may be detectable via hypervisor event logs showing abnormal interrupt handling or device table corruption. Systems without s390 KVM configurations are not affected and require no detection effort. Compile kernel logs for signs of memory corruption during device interrupt processing.
Why prioritize this
Although this vulnerability requires local access and affects a specialized architecture (s390/KVM), the HIGH CVSS score (8.8) and potential for memory corruption and hypervisor compromise make it critical for affected environments. Organizations running IBM System z virtualization must patch urgently to prevent guest-to-host escape and data compromise. Non-s390 deployments can safely defer or skip this patch.
Risk score, explained
The CVSS 3.1 score of 8.8 reflects: Attack Vector = Local (limited to on-system or guest access); Attack Complexity = Low (no special conditions needed); Privileges Required = Low (guest user context sufficient); User Interaction = None; Scope = Changed (impacts the hypervisor/host); Confidentiality = High (kernel memory disclosure); Integrity = High (memory corruption); Availability = High (system crash). The Changed scope elevates impact from guest to host, justifying the HIGH severity classification despite the local attack vector.
Frequently asked questions
Does this affect Linux systems not running KVM on s390?
No. This vulnerability is specific to IBM System z architecture and KVM's s390 PCI implementation. x86-64, ARM, and other architectures are unaffected.
Can this be exploited remotely?
No. The attack vector is Local (AV:L), requiring either direct access to the hypervisor host or user-level access to a guest VM running on an affected s390 KVM host. Remote network-based exploitation is not possible.
What is the real-world impact if my organization doesn't use s390 virtualization?
Zero impact. If your infrastructure uses x86-64 virtualization (KVM on Intel/AMD), Hyper-V, VMware, or other hypervisors on non-s390 systems, this CVE does not apply. Patching is not necessary.
Is exploitation detectable, and can I work around this without patching?
Exploitation would likely trigger kernel warnings or crashes related to memory corruption in PCI device handling. There is no practical workaround; patching is the only remediation. Organizations should apply the patched kernel at the next maintenance window.
This analysis is provided for informational purposes. CVSS scores and vulnerability details are sourced from official Linux kernel advisories and NVD records. Organizations should verify patch availability and compatibility with their specific kernel versions and distributions before deploying updates. This vulnerability does not affect non-s390 systems. No exploit code is discussed. For production deployments, test patches in a non-critical environment first. Consult vendor security advisories for definitive guidance on your specific system configuration. Source: NVD (public-domain), retrieved 2026-07-30. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-10889HIGHCritical ANGLE Sandbox Escape in Google Chrome – Patch to 149.0.7827.53
- CVE-2026-10927HIGHChrome Sandbox Escape via Dawn Out-of-Bounds Read
- CVE-2026-10941HIGHSkia Out-of-Bounds Memory Vulnerability in Chrome – Urgent Patch Required
- CVE-2026-11015HIGHCritical Chrome WebGPU Out-of-Bounds Read Vulnerability
- CVE-2026-11077HIGHChrome Dawn Graphics Vulnerability – Sandbox Escape Risk
- CVE-2026-11091HIGHCritical Chrome Memory Corruption Vulnerability in Dawn Graphics Engine
- CVE-2026-11111HIGHChrome Out-of-Bounds Read in ANGLE Graphics Engine — Patch Guidance
- CVE-2026-11191HIGHOut-of-Bounds Memory Access in Chrome ANGLE Library