High
8.8
AV:L / AC:L / PR:L / UI:N / S:C / C:H / I:H / A:H

Summary

Linux kernel KVM shadow paging use-after-free (CVE-2026-53359, “Januscape”). A malicious or compromised KVM guest can trigger a role-confusion UAF in the shadow MMU, escaping from guest to host. Proxmox VE ships the vulnerable kernel path when nested virtualization is enabled.

Affected Asset

Proxmox VE 8.x / 9.x running vulnerable Linux kernel (shadow paging / nested virtualization enabled); upstream Linux 2.6.32 → 6.8/6.14 lines.

Affected Endpoint

Guest-triggered shadow page table operations via KVM MMU (PDE mapping changes + memslot drop) leading to rmap entry survival on freed shadow page.

Prerequisites

Proxmox node with KVM VMs using nested virtualization (Intel/AMD) or shadow paging; attacker can execute code inside a guest VM.

Steps to Reproduce

Inside a KVM guest with nested virtualization on: modify a PDE mapping from outside guest, delete a memslot; the shadow page reuse with mismatched role (direct=1 vs direct=0) causes the rmap entry to survive after page free; subsequent GFN walk dereferences freed SPTE.

Evidence

NVD / MITRE CVE-2026-53359 published 2026-07-04; CVSS 3.1 base 8.8; kernel commit 0cb2af2ea66ad references the fixed shadow MMU role check. Vendor advisory (Proxmox) recommends kernel upgrade to proxmox-kernel-6.8.12-33-pve (8.x) or 7.0.14-4-pve (9.x).

Impact

Guest-to-host escape: attacker gains host-level privileges, can access all VMs/storage/network on the Proxmox node. Critical for multi-tenant homelab clusters.

Root Cause

Shadow page reuse in kvm_mmu_get_child_sp() does not compare the role (direct=1 vs direct=0); a 4KB leaf installs under a reused 2MB parent with wrong role, rmap entry computed incorrectly, survives after memslot drop and page free — UAF on later GFN walk.

Remediation

Upgrade kernel: apt update && apt install proxmox-kernel-6.8.12-33-pve (8.x) or proxmox-kernel-7.0.14-4-pve (9.x); reboot; disable nested virtualization as immediate mitigation (kvm_intel.nested=0 / kvm_amd.nested=0) if patch unavailable.

Verification Steps

Confirm kernel version with uname -r and match fixed builds above; verify nested disabled with cat /sys/module/kvm_intel/parameters/nested; test guest escape attempt and confirm host isolation intact after patch.