
KVM/x86 exploit di fuga da guest a host (CVE-2026-53359) che sfrutta un use-after-free nell'emulazione della shadow MMU. Include PoC per innescare il kernel panic dell'host e una fuga completa su architetture Intel/AMD.

Questo documento descrive la vulnerabilità Januscape (CVE-2026-53359) scoperta e segnalata da Hyunwoo Kim (@v4bel). Si tratta di una vulnerabilità di fuga da KVM che consente a un ospite di sfuggire all'host in un ambiente KVM/x86. Al meglio della conoscenza pubblica, questa è la prima ricerca di exploit da ospite a host attivabile sia su Intel che su AMD, anziché essere limitata a una singola architettura.
Januscape è una vulnerabilità use-after-free nell'emulazione della shadow MMU di KVM/x86. Può innescare il bug con sole azioni lato ospite per corrompere la pagina shadow del kernel host, e può minacciare l'isolamento ospite-host dei server KVM/x86 che accettano ospiti non fidati ed espongono la virtualizzazione annidata, in particolare i cloud pubblici x86 multi-tenant (GCP, AWS, ecc.).
In effetti, Januscape è stato utilizzato con successo come exploit 0-day in Google kvmCTF.
Per le informazioni tecniche dettagliate, vedi qui.
[!NOTE] Dopo aver segnalato questa vulnerabilità a [email protected], l'embargo concordato è terminato, quindi l'exploit è stato pubblicato su oss-security e questo documento Januscape viene pubblicato. Per la tempistica della divulgazione, consultare il documento dettagliato tecnico.
Eseguire il PoC all'interno di una VM ospite può innescare un kernel panic dell'host. Esiste anche un exploit di fuga completo funzionante in un ambiente controllato, ma non viene rilasciato al momento e si prevede di rilasciarlo in un futuro molto lontano.
Su distribuzioni come RHEL, /dev/kvm è scrivibile da tutti (0666), quindi un utente non privilegiato potrebbe anche trasformare questa vulnerabilità in un LPE affidabile a root. Detto questo, farlo sarebbe come pagare oro per spazzatura, quindi non mi preoccuperò di coprirlo.
# sudo apt-get install -y build-essential linux-headers-$(uname -r)
# make
[Intel]
# sudo rmmod kvm_intel; sudo insmod poc.ko
[AMD]
# sudo rmmod kvm_amd; sudo insmod poc.ko amd=1
[*] poc step 4/4: race live -- host DoS triggering
...
kernel BUG at arch/x86/kvm/mmu/mmu.c (pte_list_remove)
Comm: qemu-kvm
Questo PoC è inteso per fornire informazioni accurate. Non utilizzarlo su sistemi che non sei autorizzato a testare.
Januscape (CVE-2026-53359) copre l'intervallo da 2032a93d66fa (2010-08-01) a 81ccda30b4e8 (2026-06-16).
In altre parole, questa vulnerabilità è rimasta dormiente per circa "16 anni".
Ci sono due impatti in totale:
/dev/kvm è scrivibile da tutti (0666), quindi un utente non privilegiato può anche utilizzare questa vulnerabilità come un LPE affidabile per ottenere root.Se gestisci un host KVM x86 che accetta ospiti multi-tenant e supporta la virtualizzazione annidata, o utilizzi un'istanza su di esso, verifica che la patch 81ccda30b4e8 sia applicata al kernel host.
No. La vulnerabilità viene attivata solo sulle architetture Intel e AMD. Detto questo, se non hai ancora applicato la patch per il precedentemente pubblicato ITScape (CVE-2026-46316), anche i tuoi host arm64 sono vulnerabili, quindi applica la patch prontamente.
No. A differenza delle vulnerabilità di fuga da QEMU comunemente pubblicate, Januscape si verifica nel KVM in-kernel, quindi viene attivato indipendentemente dall'emulazione di QEMU. Per questo motivo, può minacciare anche grandi cloud pubblici che implementano e utilizzano il proprio stack di virtualizzazione.
Sì. L'inserimento del modulo richiede privilegi di kernel ospite. Quando ti viene allocata un'istanza su un cloud pubblico, di solito hai root sulla tua VM, quindi questo è soddisfatto. In uno scenario senza root ospite, deve essere concatenato con un LPE come Dirty Frag.