Summary
| Field | Detail |
|---|---|
| CVE ID | CVE-2026-64561 |
| Alias | Zapscape (the name its PoC uses) |
| Component | Kernel: KVM/x86 shadow MMU — stale-root check ordering in the page-fault handlers (is_page_fault_stale() vs make_mmu_pages_available(), arch/x86/kvm/mmu/) |
| Type | Guest-to-host escape / local privilege escalation — a page fault populates an invalidated shadow root, so child shadow pages inherit role.invalid onto the list of active MMU pages → memory corruption / use-after-free |
| Impact | A malicious guest can execute code as root on the host; where /dev/kvm is world-accessible (the EL8+ default) an unprivileged local user can trigger the same bug. Reaching the shadow MMU needs nested virtualization. Intel and AMD x86 |
| Upstream fix | 2abd5287f083 (KVM: x86: Check for invalid/obsolete root *after* making MMU pages available); first in v7.2-rc5 |
| Introduced | f95eec9bed76 in v5.9 (2020) — the invariant that made populating an invalid root corrupting; the underlying zapped-root reuse dates to 2e53d63acba7 (2008) |
| Affected window | Kernels 5.9 through 7.1 (and 7.2 before -rc5) without the backport; ≥ 7.2-rc5, plus the 5.15 / 6.1 / 6.6 / 6.12 / 6.18 / 7.1 stable backports, are fixed |
| Discoverer | Hyunwoo Kim (@v4bel) |
| Public disclosure | 2026-08-06 (researcher writeup / PoC; CVE record published 2026-08-04) |
| Public PoC | V4bel/Zapscape (reported to crash the guest rather than escape on CloudLinux-built kernels) |
| KEV / EPSS / CVSS | CVSS 7.0 Moderate (Red Hat, CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H); kernel CNA’s own score, carried in NVD’s record (vulnStatus: Received, not yet NVD-analyzed), is CVSS:3.1 8.8 High (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H); EPSS 0.35 % (28th pct); not in KEV |
| Related | Januscape (CVE-2026-53359) and ITScape (CVE-2026-46316) — the July 2026 KVM escapes by the same researcher (x86 shadow-MMU role confusion; arm64 vGIC-ITS). All three are -scape KVM escapes; Zapscape and Januscape both live in the x86 shadow MMU but are distinct bugs |
How the exploitation chain works
Zapscape is a memory-corruption bug in KVM’s shadow MMU — the software page-table walker KVM uses when hardware two-dimensional paging (Intel EPT / AMD NPT) is not in play for a mapping, most notably for nested guests. The flaw is one of ordering: both x86 shadow-MMU page-fault handlers checked whether a fault had gone stale before making shadow pages available, when the check has to come after.
When a page fault is taken, direct_page_fault() (and its paging-mode twin
FNAME(page_fault)) take mmu_lock and then, in the vulnerable order,
first call is_page_fault_stale() — bailing with RET_PF_RETRY if the
vCPU’s root has become invalid or obsolete since the fault was recorded —
and only then call make_mmu_pages_available(), which reclaims shadow
pages when the MMU is at its cap. The problem is that reclamation
(kvm_mmu_zap_oldest_mmu_pages()) can zap the vCPU’s own, in-use root,
marking it invalid. Because the stale check already ran and passed, the
handler proceeds to map memory into a root that is now invalid.
Populating an invalid root would be harmless on its own, but child shadow
pages inherit their parent’s role — including role.invalid. Any
children created during the map/fetch are therefore created as invalid
pages and linked onto the list of active MMU pages, violating the invariant
(established by f95eec9bed76 in Linux 5.9) that invalid shadow
pages are never on the active list. That corrupts KVM’s shadow-page
bookkeeping into a use-after-free the PoC drives to host code
execution. The fix simply moves the stale-root check to after
make_mmu_pages_available(), so a root zapped during reclamation is seen
as stale and the fault retried instead of populated.
ℹ️ The vulnerable path is the shadow MMU, which on modern EPT/NPT hardware is exercised chiefly through nested virtualization. Disabling nested virt (
kvm_intel.nested=0/kvm_amd.nested=0) removes the guest-driven path for untrusted guests. Two ways in exist: a hostile guest escaping to host root, and — where/dev/kvmis world-readable/writable (the default on EL8 and later) — an unprivileged local user reaching the same code directly. Restricting/dev/kvmcloses the second without touching the first. The nested-virt path also depends on the host CPU: AMD hosts (SVM/NPT) are reachable unconditionally, while Intel hosts (VMX/EPT) are reachable only where the CPU exposes 5-level EPT to guests — Ice Lake-SP and newer — so older Intel hosts are not reachable through the disclosed path. Only a patched kernel removes the flaw — disabling nested virt or restricting/dev/kvmnarrows who can reach an unpatched kernel but does not fix it.
Vulnerable commit range
| Commit | Role | Description |
|---|---|---|
f95eec9bed76 | Introduced | KVM: x86/mmu: Don’t put invalid SPs back on the list of active pages (v5.9) — established the invariant that invalid shadow pages are never on the active-MMU list, which populating an invalidated root violates. The underlying reuse of zapped roots dates back to 2e53d63acba7 (KVM: MMU: ignore zapped root pagetables, 2008), but only became corrupting once this invariant existed. |
2abd5287f083 | Fixed | KVM: x86: Check for invalid/obsolete root *after* making MMU pages available — reorders the stale-fault check to run after make_mmu_pages_available(), so a root zapped by reclamation is caught before any mapping is installed; first released in v7.2-rc5. |
The reachable lifetime is therefore v5.9 (2020) through v7.1; the fix is in mainline ≥ 7.2-rc5 and the 5.15 / 6.1 / 6.6 / 6.12 / 6.18 / 7.1 stable backports. ARM64 KVM uses a different MMU and is not affected by this bug — see ITScape for that researcher’s arm64 escape.
Patch status
What decides exposure is whether the kernel carries the
2abd5287f083 backport. Because the bug dates to v5.9, every kernel
below is inside the affected window and stays vulnerable until it ships the
fix. /dev/kvm exposure and nested-virt defaults change who can reach
the bug, not whether the kernel is fixed.
Unusually for this family, the fix reached the 6.6, 6.12, 6.18, and 7.1
stable lines first (all on 2026-08-03); 6.1 picked it up on 2026-08-19,
and 5.15 on 2026-08-27. The 5.10 LTS line carries no fix yet, so the
distributions still riding it are vulnerable with nothing upstream to
adopt. The first group
tracks the upstream kernel itself; the rest are a focused set of x86-64
distributions (other systems named in the disclosures appear only in
prose). Current kernel is the latest version observed in the row’s
user-facing channel; First fixed is the first release or build carrying
the fix, and Fixed since the date it first held (both stay — while a
row is vulnerable).
| Distribution | Release | Current kernel | First fixed | Fixed since | Status |
|---|---|---|---|---|---|
| Linux kernel | mainline | 7.2.4 | 7.2-rc5 | 2026-07-26 | ✅ Fixed — carries 2abd5287f083 |
| Linux kernel | 7.1.x | 7.1.13 | 7.1.6 | 2026-08-03 | ✅ Fixed — EOL |
| Linux kernel | 6.18.x | 6.18.50 | 6.18.42 | 2026-08-03 | ✅ Fixed — LTS |
| Linux kernel | 6.12.x | 6.12.109 | 6.12.101 | 2026-08-03 | ✅ Fixed — LTS |
| Linux kernel | 6.6.x | 6.6.156 | 6.6.148 | 2026-08-03 | ✅ Fixed — LTS |
| Linux kernel | 6.1.x | 6.1.187 | 6.1.183 | 2026-08-19 | ✅ Fixed — LTS |
| Linux kernel | 5.15.x | 5.15.220 | 5.15.218 | 2026-08-27 | ✅ Fixed — LTS |
| Linux kernel | 5.10.x | 5.10.269 | — | — | ❌ Vulnerable |
| Debian | sid (unstable) | 7.1.13-1 | 7.1.6-1 | 2026-08-03 | ✅ Fixed |
| Debian | forky (testing) | 7.1.13-1 | 7.1.6-1 | 2026-08-07 | ✅ Fixed |
| Debian | 13 (trixie) | 6.12.107-1 | 6.12.101-1 | 2026-08-06 | ✅ Fixed — DSA-6415-1 |
| Debian | 12 (bookworm) | 6.1.187-1 | 6.1.187-1 | 2026-09-08 | ✅ Fixed |
| Debian | 12 (6.12 opt-in) | 6.12.101-1~deb12u1 | 6.12.101-1~deb12u1 | 2026-08-15 | ✅ Fixed — DLA-4745-1 |
| Debian | 11 (bullseye, LTS) | 5.10.262-1 | — | — | ❌ Vulnerable — LTS ended 2026-08-31 |
| Debian | 11 (6.1 opt-in) | 6.1.180-1~deb11u1 | — | — | ❌ Vulnerable — LTS ended 2026-08-31 |
| Proxmox VE | 9 (default) | 7.0.14-16-pve | 7.0.14-9-pve | 2026-08-05 | ✅ Fixed |
| Proxmox VE | 8 (default) | 6.8.12-43-pve | 6.8.12-40-pve | 2026-08-05 | ✅ Fixed |
| NixOS | master | 6.18.50 | 6.18.42 | 2026-08-03 | ✅ Fixed |
| NixOS | release-26.05 | 6.18.50 | 6.18.42 | 2026-08-03 | ✅ Fixed |
| NixOS | Unstable | 6.18.50 | 6.18.42 | 2026-08-04 | ✅ Fixed |
| NixOS | Unstable (small) | 6.18.50 | 6.18.42 | 2026-08-03 | ✅ Fixed |
| NixOS | Unstable (nixpkgs) | 6.18.50 | 6.18.42 | 2026-08-08 | ✅ Fixed |
| NixOS | 26.05 | 6.18.50 | 6.18.42 | 2026-08-05 | ✅ Fixed |
| NixOS | 26.05 (small) | 6.18.50 | 6.18.42 | 2026-08-03 | ✅ Fixed |
| Rocky Linux | 10 | 6.12.0-211.53.1.el10_2 | 6.12.0-211.39.1.el10_2 | 2026-07-26 | ✅ Fixed — RHSA-2026:45114 |
| Rocky Linux | 9 | 5.14.0-687.45.1.el9_8 | 5.14.0-687.30.1.el9_8 | 2026-07-27 | ✅ Fixed — RHSA-2026:45192 |
| Rocky Linux | 8 | 4.18.0-553.159.1.el8_10 | 4.18.0-553.147.1.el8_10 | 2026-07-26 | ✅ Fixed — RHSA-2026:45115 |
| Amazon Linux | 2023 (default) | 6.1.182-227.379 | 6.1.180-225.360 | 2026-08-17 | ✅ Fixed — ALAS2023-2026-2058 |
| Amazon Linux | 2023 (6.12 opt-in) | 6.12.103-127.188 | 6.12.100-125.179 | 2026-08-17 | ✅ Fixed — ALAS2023-2026-2057 |
| Amazon Linux | 2023 (6.18 opt-in) | 6.18.44-99.149 | 6.18.41-94.142 | 2026-08-31 | ✅ Fixed — ALAS2023-2026-2071 |
Linux kernel
The fix reached Linus as v7.2-rc5 (2026-07-26) and the stable team
backported it to the 7.1, 6.18, 6.12, and 6.6 lines on 2026-08-03 (7.1.6,
6.18.42, 6.12.101, and 6.6.148), then to 6.1.y on 2026-08-19 (6.1.183),
and to 5.15.y on 2026-08-27 (5.15.218). The 7.0.y line reached end
of life at 7.0.14 on 2026-06-27 without the backport; a host still on it
is in-window and permanently vulnerable. The 7.1.y line has since
reached end of life too, at 7.1.13 (2026-09-02) — already fixed, so a
host frozen there stays patched. The 5.10.y LTS line is still
maintained but carries no fix yet: it predates is_page_fault_stale() and
carries the stale-root check in an older shape, so a fix there needs
adaptation, unlike 6.1.y and 5.15.y where the backport landed.
When verifying a tree directly, the reordered calls are in
direct_page_fault() in arch/x86/kvm/mmu/mmu.c and FNAME(page_fault)
in arch/x86/kvm/mmu/paging_tmpl.h; the fix moves is_page_fault_stale()
to after make_mmu_pages_available().
Debian
Debian’s linux is affected in every suite (the bug predates all of them);
the security tracker’s CVE-2026-64561 record drove these assessments.
trixie (stable) shipped the fix as 6.12.101-1 via trixie-security
under DSA-6415-1 (2026-08-06), and sid/forky carry 7.1.6-1 or
newer. bookworm’s default kernel rides 6.1.y: Debian backported the
upstream 6.1.183 fix into 6.1.187-1 via bookworm-security (first seen
2026-09-08), so the default is fixed too — no DSA has been issued for it.
bookworm also carries a separate opt-in linux-6.12 source
package, published straight to bookworm-security at 6.12.101-1~deb12u1
(2026-08-15) under DLA-4745-1, which reached the fix even earlier than
the default line.
bullseye’s Debian LTS window closed on 2026-08-31 — both its 5.10.y
default and its opt-in linux-6.1 package have dropped out of the Debian
security tracker’s coverage and out of the archive’s actively-tracked suite
set entirely. Neither will receive another Debian security update: the
5.10.y default already had no upstream fix to adopt, and the 6.1.y opt-in
package’s line only gained one upstream (6.1.183) after this window had
already closed. Both rows are now permanently :x: under standard Debian
support; the way off is upgrading to a supported release, or, for paying
customers, Freexian’s commercial Extended LTS, which covers Debian 11
through 2031 on a per-package subscription basis this tracker cannot
verify. Debian keeps /dev/kvm owned root:kvm mode 0660, so the
unprivileged local vector needs kvm-group membership there; the
guest-escape vector is unaffected by that.
Proxmox VE
Proxmox ships its own Proxmox-built kernels (proxmox-kernel-*), so
Debian’s fix status does not carry over. Proxmox cherry-picked
2abd5287f083 into both current default series ahead of the RHEL
family: PVE 9’s default 7.0 kernel (7.0.14-9-pve) and PVE 8’s default 6.8
kernel (6.8.12-40-pve), both published to pve-no-subscription with
changelogs dated 2026-08-05, listing CVE-2026-64561 explicitly. Proxmox
does not issue numbered advisories for these; the changelogs and
support-forum threads are the public record, and pve-no-subscription
receives the kernels before the enterprise repository.
Proxmox’s superseded kernel series — PVE 9’s 6.17 and 6.14, and PVE 8’s opt-in 6.14 and old 6.11 — did not receive this fix: the cherry-pick went only into the two current defaults, and those older series (last built 2026-07-28, 2026-05-15, and 2025-03-16) are no longer updated. A host booted into any of them is in-window and permanently vulnerable; the fix is to boot the release’s current default kernel.
NixOS
Every tracked ref’s default linuxPackages is linux_6_18, and every
ref’s linuxPackages_latest alias has now moved to linux_7_2 as well.
Both tracks sit on fixed point releases everywhere, so all of these rows
are fixed; they differ only in which point release they have reached.
Kernel updates land on nixpkgs master first, and each channel
publishes them once its Hydra jobset passes. A channel can therefore sit days behind master, and an
unstable channel is not necessarily ahead of a release channel. The
-small channels (nixos-unstable-small, nixos-26.05-small) are
gated on a reduced jobset and pick up kernel updates fastest.
The master and release-26.05 rows are the git branches the fix lands
on. They are not Hydra-gated, so they carry a kernel bump from the
moment the commit lands — typically a day or more before a channel
republishes it, which is what the Fixed since dates down the group
show. They are development branches, not deployment targets.
Flake inputs map onto these directly.
github:NixOS/nixpkgs/nixos-unstable tracks the nixos-unstable
channel — the GitHub channel branches are updated to exactly the
published channel pins — and a bare github:NixOS/nixpkgs with no ref
follows master. A bare nixpkgs registry input resolves by default to
nixpkgs-unstable, which is a separate channel aimed at Nix users on
other operating systems rather than at NixOS, so it is not gated on the
NixOS tests and can hold a different kernel from nixos-unstable.
Rocky Linux / RHEL family
The EL family ships /dev/kvm world-accessible by default (EL8 and
later), so on those hosts any local user — not just a guest — can reach
the bug; combined with the guest-escape path this is the higher-exposure
case. All of RHEL 8, 9, and 10 are fixed: Red Hat shipped
RHSA-2026:45115 (RHEL 8 kernel, 4.18.0-553.147.1.el8_10) with the
companion RHSA-2026:45116 (kernel-rt), RHSA-2026:45192 (RHEL 9
kernel, 5.14.0-687.30.1.el9_8), and RHSA-2026:45114 (RHEL 10
kernel, 6.12.0-211.39.1.el10_2), all dated 2026-07-24 (RHEL 6/7 are Not
affected, predating the v5.9 invariant). RHEL 9’s niche kernel-rt
variant (no row here) remains Affected with no RHSA yet. Red Hat has
also fixed several narrower EUS/TUS/E4S streams Rocky does not rebuild —
RHEL 10.0 EUS (RHSA-2026:49030, 6.12.0-55.94.1.el10_0), RHEL 8.8
TUS/E4S (RHSA-2026:47869, 4.18.0-477.156.1.el8_8), RHEL 9.4 E4S
(RHSA-2026:48386, 5.14.0-427.141.1.el9_4), and RHEL 9.6 EUS
(RHSA-2026:49031, 5.14.0-570.131.1.el9_6). Rocky has rebuilt past all
three general-stream fixes (8 and 10 on 2026-07-26, 9 on 2026-07-27),
so Rocky 8, 9, and 10 are all :white_check_mark:. Upstream, the
whole RHEL family, and CloudLinux are now fixed.
CloudLinux patches its own .lve kernel builds directly and is ahead
of Red Hat: per its advisory, CloudLinux 9 already ships a fixed
kernel-5.14.0-687.30.1.el9_8 or newer in stable, CloudLinux 7h and 8
have kernel-4.18.0-553.150.1.lve (or newer) rolling out through the
testing repositories, and CloudLinux 8 LTS / 9 LTS / 10 are in
preparation. The CloudLinux Ubuntu 22.04 kernel is delivered via Canonical,
with a KernelCare livepatch in preparation. Oracle Linux is expected to
track the RHEL fixes once they ship.
Amazon Linux
Each AL2023 kernel stream is its own row above; status is verified from
the repodata updateinfo.xml (the per-CVE ALAS pages are JS-rendered and
don’t fetch headlessly). ALAS2023-2026-2057 and ALAS2023-2026-2058
(both 2026-08-17, Important) fixed the kernel6.12 stream at
6.12.100-125.179 and the default kernel stream at 6.1.180-225.360
respectively, and ALAS2023-2026-2071 (2026-08-31, Important) fixed the
kernel6.18 stream at 6.18.41-94.142 — all three Amazon-specific
cherry-picks, since each build sits below its line’s upstream first-fixed
release (6.12.101, 6.1.183, and 6.18.42). All three currently supported
AL2023 kernel streams are now fixed.
AL2 (amzn2) is not tracked here: it reached end of support on
2026-06-30 — before this tracker existed — with no ALAS for this CVE.
Its 5.10 and 5.15 amazon-linux-extras kernels are in-window and
permanently vulnerable (the 4.14 default predates the v5.9 introduction and
is not affected). The exit for an AL2 KVM host is migrating to AL2023 (or
another distribution) and adopting its fix once one ships.
Detection
Is the running kernel in the affected window and missing the fix? Compare the running kernel against the Patch status table above — the Linux kernel rows for the upstream point releases, and your distribution’s row:
uname -r
Is this an x86 host? Zapscape is x86-only (Intel or AMD); arm64 hosts are not affected by this bug:
uname -m
Is KVM in use, and is nested virtualization enabled? The shadow-MMU
path is reached chiefly through nested guests; Y means nested virt is on:
cat /sys/module/kvm_intel/parameters/nested
On AMD hosts check the AMD module instead:
cat /sys/module/kvm_amd/parameters/nested
On an Intel host, is the CPU new enough to be reachable? The disclosed path needs the host to expose 5-level EPT to guests (Ice Lake-SP and newer). Empty output means the CPU predates that and the disclosed path is not reachable; AMD hosts print no such line and are reachable regardless:
grep -ow ept_5level /proc/cpuinfo
Who can open /dev/kvm? World access (e.g. crw-rw-rw-, the EL8+
default) exposes the local unprivileged vector; crw-rw---- root:kvm
limits it to the kvm group:
ls -l /dev/kvm
Public PoC
The upstream PoC is in V4bel/Zapscape. CloudLinux reports that the published exploit does not run against its CloudLinux-built kernels as written — in their reproduction it crashed the attacker’s own guest rather than escaping — but on an unpatched host the flaw is a host-compromise primitive. Do not run it on a system you are not authorised to test.
Mitigation
The real fix is a patched kernel (the 2abd5287f083 backport). Until one
is installed, the exposure can be narrowed.
Unload KVM where virtualization is not used (removes the bug entirely)
On a host that runs no VMs, unload and blacklist the KVM modules so the vulnerable code cannot be reached at all (no reboot needed):
sudo modprobe -r kvm_intel kvm
echo -e 'install kvm /bin/false\nblacklist kvm_intel\nblacklist kvm_amd' | sudo tee /etc/modprobe.d/disable-kvm.conf
Use kvm_amd in the first command on an AMD host. This is CloudLinux’s
recommended measure for non-virtualization hosts.
Disable nested virtualization (removes the guest-driven path)
On a host that does run VMs but not nested ones, turn nested virt off and reload the module (no running nested guests):
sudo modprobe -r kvm_intel
echo 'options kvm_intel nested=0' | sudo tee /etc/modprobe.d/99-zapscape.conf
On an AMD host use kvm_amd in both commands. This blocks the shadow-MMU
path for untrusted guests but does not close the hole for a workload that
legitimately needs nested virtualization.
Restrict /dev/kvm (removes the unprivileged local vector)
Where /dev/kvm is world-accessible (EL8+), restrict it to a trusted group
so unprivileged local users cannot open it directly:
sudo chmod 0660 /dev/kvm
Persist it with a udev rule:
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0660"' | sudo tee /etc/udev/rules.d/65-kvm.rules
This does not stop a hostile guest escaping — it only removes the local unprivileged path. None of these measures is a fix; the kernel hole remains until patched.
Risk notes
- Multi-tenant / untrusted-guest hosts: this is a guest-to-host-root primitive from inside an otherwise isolated VM — the headline risk for anyone running untrusted guests with nested virtualization enabled.
- EL8+ hosts (
/dev/kvmworld-accessible): any unprivileged local user can reach the bug directly, without needing a guest — self-hosted CI and shared multi-user hosts are directly in scope. RHEL/Rocky 8, 9, and 10 now all have a vendor fix. - AMD unconditional; Intel only Ice Lake-SP and newer: demonstrated on both vendors, so there is no blanket “AMD is safe” caveat — AMD hosts are reachable whenever nested virt is on. On Intel the disclosed path needs 5-level EPT exposed to guests, so pre–Ice Lake-SP hosts are not reachable through it; treat that as a scoping aid, not a substitute for patching a host that runs untrusted guests.
- Backports are narrow (CVE-2026-64561): the fix has landed in 7.1.6,
6.18.42, 6.12.101, 6.6.148, 6.1.183 (2026-08-19), and 5.15.218
(2026-08-27), but the 5.10.y LTS line carries no fix yet. Debian has
backported it into bookworm’s 6.1.y default (6.1.187-1); bullseye’s LTS
window closed on 2026-08-31 with neither its 5.10.y default nor its
opt-in
linux-6.1package ever picking up a fix, so both are permanently vulnerable under standard support. Amazon has cherry-picked the fix independently, below the upstream threshold, into all three currently supported AL2023 kernel streams: the defaultkernel(ALAS2023-2026-2058), thekernel6.12opt-in (ALAS2023-2026-2057), and thekernel6.18opt-in (ALAS2023-2026-2071). Check the distribution row for your kernel.
Verification log
Every verdict in the table above is backed by a checkable source. This log records the provenance — the advisory, repository index, or git reference that established each fact — so any row can be audited or reproduced. Most readers never need it.
Full verification log
Upstream
- The fix is
2abd5287f083(KVM: x86: Check for invalid/obsolete root *after* making MMU pages available, Sean Christopherson, authored 2026-07-13), first released in v7.2-rc5 (tag date 2026-07-26, confirmed viagit describe --contains→v7.2-rc5~34^2~6against~/src/linux/stable). It reordersis_page_fault_stale()to aftermake_mmu_pages_available()indirect_page_fault()andFNAME(page_fault). - The bug became exploitable with
f95eec9bed76(Don’t put invalid SPs back on the list of active pages) in v5.9; the commit’s own note traces the underlying zapped-root reuse to2e53d63acba7(2008). - CVE-2026-64561 assigned by the kernel CNA (record and
.dyadconfirmed via~/src/linux/vulnsorigin/master, keyed on2abd5287f083). The dyad’s vulnerable:fixed pairs are5.9:…:5.15.218,6.1.183,6.6.148,6.12.101,6.18.42,7.1.6, and7.2-rc5— no 5.10.y pair. - Stable backports (confirmed by subject grep against
~/src/linux/stable): present inlinux-7.1.y(bce0d3c26e2c),linux-6.18.y(f3477a6a4164),linux-6.12.y(0026dbb7de8e), andlinux-6.6.y(35e77467610c), all tagged 2026-08-03; inlinux-6.1.y(65c4f7a1028c), first in tagv6.1.183(tag date 2026-08-19); and inlinux-5.15.y(62ef67af1878), first in tagv5.15.218(tag date 2026-08-27).linux-5.10.yreturns no match;is_page_fault_staleis absent from its MMU sources, so a fix there still needs adaptation. 7.0.y is EOL at 7.0.14 (2026-06-27) without the fix; 7.1.y is now EOL too, at 7.1.13 (tag date 2026-09-02), already fixed.
Scoring
- Red Hat rates it CVSSv3 7.0 Moderate
(CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H, CWE-825; via the Red Hat
security data API, marked
verified). CVE-2026-64561 is assigned by the kernel CNA, not Red Hat. NVD published the record 2026-08-04; it now carries the kernel CNA’s own CVSS:3.1 score, 8.8 High (AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H) — viaservices.nvd.nist.gov/rest/json/cves/2.0,sourceIdentifiermatching the kernel CNA andvulnStatus: Received(not yet NVD-analyzed), so this is the submitter’s score, not an independent NVD rating. EPSS 0.35 % (28th percentile, via api.first.org). Not in CISA KEV.
Distributions
- Debian (via the Debian security tracker +
madison):- unstable/sid — the tracker records the fix from
7.1.6-1(entered unstable 2026-08-03) — fixed. - testing/forky —
madisonshows the suite on7.1.13-1, past the7.1.6-1first fix — fixed. - stable/trixie — first fixed
6.12.101-1viatrixie-security(DSA-6415-1, 2026-08-06, lists CVE-2026-64561) — fixed. - oldstable/bookworm default — the tracker marks it
resolved,fixed_version6.1.187-1viabookworm-security(snapshot.debian.orgfirst_seen2026-09-08) — fixed. - oldstable/bookworm opt-in
linux-6.12— new source package, first published straight tobookworm-securityat6.12.101-1~deb12u1(madison lists it asnew; snapshot.debian.orgfirst_seen2026-08-15), already carrying the fix, now confirmed under DLA-4745-1 — fixed. - LTS/bullseye default and opt-in
linux-6.1— both packages have dropped out of the security tracker’sreleasesmap and out of unfilteredmadisonentirely; confirmed via the Debian LTS wiki schedule (bullseye’s LTS ran 2024-08-15 – 2026-08-31, now closed). Thebullseye-securitysuite still serves the same builds recorded here (checked directly against itsPackages.gz, not madison), but is frozen — no 5.10.y backport exists to adopt, and the 6.1.y opt-in package’s line gained an upstream fix only after this window closed — both vulnerable, permanently, under standard Debian support. - The rows’ Current kernel values come from
madisonand the tracker’s<suite>-securityrepositoriesentries.
- unstable/sid — the tracker records the fix from
- Proxmox VE (fixed kernels confirmed in
~/src/proxmox/pve-kernelandpve-no-subscriptionPackages.gz):- PVE 9 default —
proxmox-kernel-7.0.14-9-pvecherry-picks2abd5287f083(patch0050-KVM-x86-Check-for-invalid-obsolete-root-…, changelog 2026-08-05) — fixed. - PVE 8 default —
proxmox-kernel-6.8.12-40-pvecherry-picks it (patch0027-…, changelog 2026-08-05) — fixed. - PVE 9 old 6.17 (
6.17.13-21-pve, 2026-07-28), PVE 9 old 6.14 (6.14.11-9-pve, 2026-05-15), PVE 8 opt-in 6.14 (6.14.11-9~bpo12+1, 2026-05-15), PVE 8 old 6.11 (6.11.11-2, 2025-03-16) — all superseded, no longer updated, and not among the two defaults Proxmox patched for this CVE, so none carries the fix — permanently vulnerable.
- PVE 9 default —
- NixOS (via the local nixpkgs clone at the channel revision pins
and at the branch tips):
- every tracked ref resolves
linux_defaulttolinux_6_18andlinux_latesttolinux_7_2, and each ref’s point release on both tracks is at or above the fixed release for its track (6.18.42; 7.1.6 / mainline 7.2, which carries the fix from 7.2-rc5) — so both tracks are fixed everywhere. masterreached 6.18.42 inb658e06342e8;release-26.05in33565191d37a.- each row’s Current kernel is the
6.18versionkernels-org.jsonresolves at that ref (branch tips from the clone, channels via theirgit-revisionpins). - each channel’s Fixed since is the first published release whose revision contains its branch’s 6.18.42 commit, resolved from the nix-releases bucket rather than stamped from the branch date.
- every tracked ref resolves
- Rocky / RHEL family (via the Red Hat security data API + CSAF VEX,
OSV, and Rocky BaseOS repodata):
- Red Hat’s hydra
affected_releasenow lists RHSA-2026:45115 (RHEL 8kernel-0:4.18.0-553.147.1.el8_10) with RHSA-2026:45116 (RHEL 8 NFVkernel-rt), RHSA-2026:45192 (RHEL 9kernel-0:5.14.0-687.30.1.el9_8), and RHSA-2026:45114 (RHEL 10kernel-0:6.12.0-211.39.1.el10_2) — all released 2026-07-24, and none remainpackage_stateAffected (RHEL 9’s nichekernel-rt, no row here, is still Affected with no RHSA). Confirmed in the CSAF VEXproduct_status.fixedlist. Narrower EUS/TUS/E4S streams Rocky does not rebuild are also fixed: RHEL 10.0 EUS (RHSA-2026:49030,6.12.0-55.94.1.el10_0), RHEL 8.8 TUS/E4S (RHSA-2026:47869,4.18.0-477.156.1.el8_8), RHEL 9.4 E4S (RHSA-2026:48386,5.14.0-427.141.1.el9_4), RHEL 9.6 EUS (RHSA-2026:49031,5.14.0-570.131.1.el9_6). RHEL 6/7 Not affected. - Rocky 8 BaseOS repodata reaches
4.18.0-553.147.1.el8_10exactly (primary.xml.gz build/file epochs 2026-07-24 / 2026-07-26), confirming the RHSA build — fixed since 2026-07-26. - Rocky 9 BaseOS repodata reaches
5.14.0-687.30.1.el9_8exactly (primary.xml.gz build/file epochs both 2026-07-27), confirming the RHSA build — fixed since 2026-07-27. - Rocky 10 BaseOS repodata reaches
6.12.0-211.39.1.el10_2exactly (primary.xml.gz build/file epochs 2026-07-24 / 2026-07-26), confirming the RHSA build — fixed since 2026-07-26. - The Rocky rows’ Current kernel NVRs are read from BaseOS repodata
(
primary.xml.gz, highestrel). - CloudLinux (via its advisory blog): CL 9 ships fixed
kernel-5.14.0-687.30.1.el9_8+ in stable; CL 7h/8 havekernel-4.18.0-553.150.1.lve+ in the testing repos; CL 8 LTS / 9 LTS / 10 and the CL Ubuntu 22.04 kernel are in preparation.
- Red Hat’s hydra
- Amazon Linux (via repodata
updateinfo.xml.gz/primary.xml.gz):- default
kernel6.1.180-225.360cherry-picks the fix per ALAS2023-2026-2058 (2026-08-17, Important) — fixed; the build sits below the upstream 6.1.183 threshold, confirming an Amazon-specific backport rather than a rebase. kernel6.126.12.100-125.179cherry-picks the fix per ALAS2023-2026-2057 (2026-08-17, Important) — fixed; the build sits below the upstream 6.12.101 threshold, confirming an Amazon-specific backport rather than a rebase.kernel6.186.18.41-94.142cherry-picks the fix per ALAS2023-2026-2071 (2026-08-31, Important) — fixed; the build sits below the upstream 6.18.42 threshold, confirming an Amazon-specific backport rather than a rebase.- The streams’ Current kernel values are read from
primary.xml.gz. - AL2 (amzn2) reached end of support 2026-06-30 with no ALAS for this CVE; its 5.10 / 5.15 extras kernels are permanently vulnerable, the 4.14 default not affected.
- default