data built 2026-10-19T13:16:53Z

Look up another CVE · open CVE-2026-72412 in the interactive tracker

CVE-2026-72412

s390/mm: Fix handling of _PAGE_UNUSED pte bit

9.3 EPSS 0.2% AV:L

Published 2026-08-15 (2 months ago) by the Linux kernel CNA. Subsystem arch/s390. Debian urgency: unimportant.

What to do, per Debian release

Debian's own status for CVE-2026-72412 in every release this site tracks, and what each one means in practice. Every status below is the one the Debian Security Team publishes for this CVE. source

ReleaseStatus VersionWhat this means
Debian 12bookwormnot affected6.1.190-1Nothing to do. bookworm never shipped the vulnerable code.
Debian 13trixienot affected6.12.113-1Nothing to do. trixie never shipped the vulnerable code.
Debian 14forkyfixed7.1.5-1Update the kernel and reboot. Fixed in 7.1.5-1. A running kernel keeps the old code until the machine restarts.
Debian unstablesidfixed7.1.5-1Update the kernel and reboot. Fixed in 7.1.5-1. A running kernel keeps the old code until the machine restarts.

The vulnerability

What the bug is

The _PAGE_UNUSED softbit should not really be lying around. Its sole purpose is to signal to try_to_unmap_one() and try_to_migrate_one() that the page can be discarded instead of being moved / swapped. KVM has no way to know why a page is being unmapped, so it sets the bit on userspace ptes corresponding to unused guest pages every time they get unmapped. KVM has no reasonable way to clear the bit once the page is in use again. While set_ptes() checks and clears the bit, other paths that set new ptes did not. This led to used pages being thrown out as if they were unused, causing guest corruption. Fix the issue by clearing the _PAGE_UNUSED bit for present ptes in set_pte(), i.e. whenever a present pte is getting set. The check in set_ptes() is then redundant and can be removed. Also fix gmap_helper_try_set_pte_unused() to only set the bit if the pte is present; the _PAGE_UNUSED bit is only defined for present ptes and thus should not be set for non-present ptes.

Where it lives

The fix touches these files. If the subsystem is one you do not use, the practical exposure is lower, though the package is still the vulnerable one.

arch/s390/include/asm/pgtable.h
arch/s390/mm/gmap_helpers.c

What this is
S390 MMMAINTAINERS section matched on arch/s390/include/asm/pgtable.h · linux-s390@vger.kernel.org · Supported
Show whether Debian builds this, per release

Not established. This site could not find the build rule for the affected file in the kernel trees Debian ships, so it has no answer about whether Debian compiles this code. Read that as unknown, never as absent.

  • bookworm, trixie, forky, sid?
?
not established - no Makefile entry for the affected file

Where a release above reads "not established", no build rule for the affected file was found in that release's kernel tree. That is a gap in this lookup, not a finding that the code is absent.

From the configuration Debian publishes for every kernel flavour it builds. It covers only the architectures Debian ships a linux-config package for, and nothing about a kernel you built yourself. Debian's own status above stays authoritative about the source package.MAINTAINERS

Signals

Published
2026-08-15 (2 months ago)source
CVSS
9.3 critical
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:Hsource recompute it
Attack vector
local (AV:L)source
EPSS
0.18%, higher than 7.0% of all CVEssource
CISA KEV
not listedthe KEV catalogue
Debian urgency
unimportantsource
Subsystem
arch/s390

Upstream fixes

The versions the CNA records as introducing and fixing this, and the commit for each. source

IntroducedFixed inCommit
7.07.1.5fda07c8e4b54
7.07.2d4bb00704a66

Why the CNA scored it this way

Quoted from the kernel CNA's own scoring file, word for word. A highlighted metric carries the most severe value CVSS v3.1 defines for it, which is what pushes the score up. source

AV:LAttack vector, local
The bug is only reachable on s390 KVM hosts when a guest drives CMMA/ESSA page-state changes and gmap unmaps that reach gmap_helper_try_set_pte_unused() and host try_to_unmap_one()/try_to_migrate_one() on kvm->mm; there is no network or physical-bus entry point.
AC:LAttack complexity, low
A guest can deterministically mark pages unused via ESSA, remap them through PTE-install paths that left stale _PAGE_UNUSED set, then induce host reclaim/migration with memory pressure; no attacker-uncontrollable race or rare layout is required on CMMA-enabled s390 KVM.
PR:NPrivileges required, none
A malicious KVM guest tenant on an IBM Z/LinuxONE host with CMMA-enabled VMs needs no host root, capabilities, or /dev/kvm access—only guest supervisor memory management that issues ESSA and normal guest page reuse to trigger the stale-bit discard path.
UI:NUser interaction, none
No victim interaction is required; once a CMMA-enabled s390 KVM guest is running, the attacker directly drives ESSA unused marking, guest remap/fault activity, and memory-pressure workloads to trigger premature host-side page discard.
S:CScope, changed
The flaw corrupts host-kernel management of kvm->mm backing pages from guest-controlled CMMA state, discarding live present pages outside the guest security authority and enabling cross-boundary host memory corruption/disclosure primitives.
C:HConfidentiality impact, high
Prematurely discarding present backing pages while guest mappings remain can free and reallocate folios, exposing prior page contents on refault and providing UAF-class read primitives consistent with memory-corruption confidentiality impact.
I:HIntegrity impact, high
Stale _PAGE_UNUSED causes try_to_unmap_one()/try_to_migrate_one() to drop in-use guest backing pages instead of swapping/migrating them, enabling arbitrary guest memory corruption and host mm metadata corruption exploitable for control-flow hijacking.
A:HAvailability impact, high
Incorrect discard during host reclaim, migration, or unmap can panic/oops the kernel or repeatedly corrupt guest RAM, causing guest or host denial of service that the attacker can retrigger with memory-pressure workloads.