Summary

FieldDetail
CVE IDCVE-2026-64561
AliasZapscape (the name its PoC uses)
ComponentKernel: 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/)
TypeGuest-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
ImpactA 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 fix2abd5287f083 (KVM: x86: Check for invalid/obsolete root *after* making MMU pages available); first in v7.2-rc5
Introducedf95eec9bed76 in v5.9 (2020) — the invariant that made populating an invalid root corrupting; the underlying zapped-root reuse dates to 2e53d63acba7 (2008)
Affected windowKernels 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
DiscovererHyunwoo Kim (@v4bel)
Public disclosure2026-08-06 (researcher writeup / PoC; CVE record published 2026-08-04)
Public PoCV4bel/Zapscape (reported to crash the guest rather than escape on CloudLinux-built kernels)
KEV / EPSS / CVSSCVSS 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
RelatedJanuscape (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/kvm is world-readable/writable (the default on EL8 and later) — an unprivileged local user reaching the same code directly. Restricting /dev/kvm closes 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/kvm narrows who can reach an unpatched kernel but does not fix it.

Vulnerable commit range

CommitRoleDescription
f95eec9bed76IntroducedKVM: 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.
2abd5287f083FixedKVM: 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).

DistributionReleaseCurrent kernelFirst fixedFixed sinceStatus
Linux kernelmainline7.2.47.2-rc52026-07-26✅ Fixed — carries 2abd5287f083
Linux kernel7.1.x7.1.137.1.62026-08-03✅ Fixed — EOL
Linux kernel6.18.x6.18.506.18.422026-08-03✅ Fixed — LTS
Linux kernel6.12.x6.12.1096.12.1012026-08-03✅ Fixed — LTS
Linux kernel6.6.x6.6.1566.6.1482026-08-03✅ Fixed — LTS
Linux kernel6.1.x6.1.1876.1.1832026-08-19✅ Fixed — LTS
Linux kernel5.15.x5.15.2205.15.2182026-08-27✅ Fixed — LTS
Linux kernel5.10.x5.10.269❌ Vulnerable
Debiansid (unstable)7.1.13-17.1.6-12026-08-03✅ Fixed
Debianforky (testing)7.1.13-17.1.6-12026-08-07✅ Fixed
Debian13 (trixie)6.12.107-16.12.101-12026-08-06✅ Fixed — DSA-6415-1
Debian12 (bookworm)6.1.187-16.1.187-12026-09-08✅ Fixed
Debian12 (6.12 opt-in)6.12.101-1~deb12u16.12.101-1~deb12u12026-08-15✅ Fixed — DLA-4745-1
Debian11 (bullseye, LTS)5.10.262-1❌ Vulnerable — LTS ended 2026-08-31
Debian11 (6.1 opt-in)6.1.180-1~deb11u1❌ Vulnerable — LTS ended 2026-08-31
Proxmox VE9 (default)7.0.14-16-pve7.0.14-9-pve2026-08-05✅ Fixed
Proxmox VE8 (default)6.8.12-43-pve6.8.12-40-pve2026-08-05✅ Fixed
NixOSmaster6.18.506.18.422026-08-03✅ Fixed
NixOSrelease-26.056.18.506.18.422026-08-03✅ Fixed
NixOSUnstable6.18.506.18.422026-08-04✅ Fixed
NixOSUnstable (small)6.18.506.18.422026-08-03✅ Fixed
NixOSUnstable (nixpkgs)6.18.506.18.422026-08-08✅ Fixed
NixOS26.056.18.506.18.422026-08-05✅ Fixed
NixOS26.05 (small)6.18.506.18.422026-08-03✅ Fixed
Rocky Linux106.12.0-211.53.1.el10_26.12.0-211.39.1.el10_22026-07-26✅ Fixed — RHSA-2026:45114
Rocky Linux95.14.0-687.45.1.el9_85.14.0-687.30.1.el9_82026-07-27✅ Fixed — RHSA-2026:45192
Rocky Linux84.18.0-553.159.1.el8_104.18.0-553.147.1.el8_102026-07-26✅ Fixed — RHSA-2026:45115
Amazon Linux2023 (default)6.1.182-227.3796.1.180-225.3602026-08-17✅ Fixed — ALAS2023-2026-2058
Amazon Linux2023 (6.12 opt-in)6.12.103-127.1886.12.100-125.1792026-08-17✅ Fixed — ALAS2023-2026-2057
Amazon Linux2023 (6.18 opt-in)6.18.44-99.1496.18.41-94.1422026-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/kvm world-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.1 package 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 default kernel (ALAS2023-2026-2058), the kernel6.12 opt-in (ALAS2023-2026-2057), and the kernel6.18 opt-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 via git describe --containsv7.2-rc5~34^2~6 against ~/src/linux/stable). It reorders is_page_fault_stale() to after make_mmu_pages_available() in direct_page_fault() and FNAME(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 to 2e53d63acba7 (2008).
  • CVE-2026-64561 assigned by the kernel CNA (record and .dyad confirmed via ~/src/linux/vulns origin/master, keyed on 2abd5287f083). The dyad’s vulnerable:fixed pairs are 5.9:…:5.15.218, 6.1.183, 6.6.148, 6.12.101, 6.18.42, 7.1.6, and 7.2-rc5no 5.10.y pair.
  • Stable backports (confirmed by subject grep against ~/src/linux/stable): present in linux-7.1.y (bce0d3c26e2c), linux-6.18.y (f3477a6a4164), linux-6.12.y (0026dbb7de8e), and linux-6.6.y (35e77467610c), all tagged 2026-08-03; in linux-6.1.y (65c4f7a1028c), first in tag v6.1.183 (tag date 2026-08-19); and in linux-5.15.y (62ef67af1878), first in tag v5.15.218 (tag date 2026-08-27). linux-5.10.y returns no match; is_page_fault_stale is 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) — via services.nvd.nist.gov/rest/json/cves/2.0, sourceIdentifier matching the kernel CNA and vulnStatus: 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 — madison shows the suite on 7.1.13-1, past the 7.1.6-1 first fix — fixed.
    • stable/trixie — first fixed 6.12.101-1 via trixie-security (DSA-6415-1, 2026-08-06, lists CVE-2026-64561) — fixed.
    • oldstable/bookworm default — the tracker marks it resolved, fixed_version 6.1.187-1 via bookworm-security (snapshot.debian.org first_seen 2026-09-08) — fixed.
    • oldstable/bookworm opt-in linux-6.12 — new source package, first published straight to bookworm-security at 6.12.101-1~deb12u1 (madison lists it as new; snapshot.debian.org first_seen 2026-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’s releases map and out of unfiltered madison entirely; confirmed via the Debian LTS wiki schedule (bullseye’s LTS ran 2024-08-15 – 2026-08-31, now closed). The bullseye-security suite still serves the same builds recorded here (checked directly against its Packages.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 madison and the tracker’s <suite>-security repositories entries.
  • Proxmox VE (fixed kernels confirmed in ~/src/proxmox/pve-kernel and pve-no-subscription Packages.gz):
    • PVE 9 default — proxmox-kernel-7.0.14-9-pve cherry-picks 2abd5287f083 (patch 0050-KVM-x86-Check-for-invalid-obsolete-root-…, changelog 2026-08-05) — fixed.
    • PVE 8 default — proxmox-kernel-6.8.12-40-pve cherry-picks it (patch 0027-…, 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.
  • NixOS (via the local nixpkgs clone at the channel revision pins and at the branch tips):
    • every tracked ref resolves linux_default to linux_6_18 and linux_latest to linux_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.
    • master reached 6.18.42 in b658e06342e8; release-26.05 in 33565191d37a.
    • each row’s Current kernel is the 6.18 version kernels-org.json resolves at that ref (branch tips from the clone, channels via their git-revision pins).
    • 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.
  • Rocky / RHEL family (via the Red Hat security data API + CSAF VEX, OSV, and Rocky BaseOS repodata):
    • Red Hat’s hydra affected_release now lists RHSA-2026:45115 (RHEL 8 kernel-0:4.18.0-553.147.1.el8_10) with RHSA-2026:45116 (RHEL 8 NFV kernel-rt), RHSA-2026:45192 (RHEL 9 kernel-0:5.14.0-687.30.1.el9_8), and RHSA-2026:45114 (RHEL 10 kernel-0:6.12.0-211.39.1.el10_2) — all released 2026-07-24, and none remain package_state Affected (RHEL 9’s niche kernel-rt, no row here, is still Affected with no RHSA). Confirmed in the CSAF VEX product_status.fixed list. 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_10 exactly (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_8 exactly (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_2 exactly (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, highest rel).
    • CloudLinux (via its advisory blog): CL 9 ships fixed kernel-5.14.0-687.30.1.el9_8+ in stable; CL 7h/8 have kernel-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.
  • Amazon Linux (via repodata updateinfo.xml.gz / primary.xml.gz):
    • default kernel 6.1.180-225.360 cherry-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.12 6.12.100-125.179 cherry-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.18 6.18.41-94.142 cherry-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.

References

SourceURL
Public PoC (V4bel)https://github.com/V4bel/Zapscape
Kernel fixhttps://github.com/torvalds/linux/commit/2abd5287f08319fa35764566b15c6e22cb1068db
Invariant that made it exploitable (v5.9)https://github.com/torvalds/linux/commit/f95eec9bed76d42194c23153cb1cc8f186bf91cb
Companion tracker — Januscape (x86)https://kimmo.cloud/januscape/
Companion tracker — ITScape (arm64)https://kimmo.cloud/itscape/
CVE-2026-64561https://www.cve.org/CVERecord?id=CVE-2026-64561
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2026-64561
Red Hat CVEhttps://access.redhat.com/security/cve/cve-2026-64561
Red Hat CSAF VEXhttps://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-64561.json
CloudLinux advisoryhttps://blog.cloudlinux.com/zapscape-cve-2026-64561-kvm-guest-escape-and-local-root-mitigation-and-kernel-update-for-cloudlinux/
TuxCare explainerhttps://tuxcare.com/blog/zapscape-cve/
Debian security trackerhttps://security-tracker.debian.org/tracker/CVE-2026-64561
Debian advisory DSA-6415-1https://security-tracker.debian.org/tracker/DSA-6415-1
Debian package madison (dak-backed)https://api.ftp-master.debian.org/madison?package=linux&s=sid,forky,trixie,bookworm,bullseye&text=on
Proxmox forum threadhttps://forum.proxmox.com/threads/proxmox-and-cve-2026-64561.185571/
AlmaLinux erratahttps://errata.almalinux.org/
Amazon Linux ALAShttps://alas.aws.amazon.com/
stable point release bannerhttps://www.kernel.org/finger_banner