CVE-2026-64513 in Linuxinformazioni

Riassunto

di VulDB • 25/07/2026

Nel kernel Linux, è stata risolta la seguente vulnerabilità:

KVM: x86: Ricomputare incondizionatamente l'intercettazione di CR8 in seguito all'aggiornamento del PPR.

Il campo TPR_THRESHOLD nel VMCS viene utilizzato da VMX per provocare le uscite dalla macchina virtuale (VM exits) quando il virtual TPR dell'ospite scende al di sotto della soglia specificata, consentendo a KVM di iniettare interrupt precedentemente mascherati.

KVM gestisce queste VM exits tramite la funzione handle_tpr_below_threshold(). La commit eb90f3417a0c ("KVM: vmx: speed up TPR below threshold vmexits") ha ottimizzato questa funzione chiamando apic_update_ppr() anziché impostare KVM_REQ_EVENT. Successivamente, apic_update_ppr() imposta KVM_REQ_EVENT se è presente un interrupt in attesa e deliverable (inviabile).

Tuttavia, se non ci sono nuovi interrupt in attesa, apic_update_ppr() non emette la richiesta. Di conseguenza, kvm_lapic_update_cr8_intercept() e vmx_update_cr8_intercept() non vengono chiamate prima dell'ingresso nella VM (VM entry), il che comporta un valore TPR_THRESHOLD elevato e obsoleto. Questa condizione è problematica a causa della seguente frase presente nella sezione 28.2.1.1 "VM-Execution Control Fields" del SDM:

"Il controllo seguente viene eseguito se il controllo di esecuzione VM 'use TPR shadow' è impostato su 1 e i controlli di esecuzione VM 'virtualize APIC accesses' e 'virtual-interrupt delivery' sono entrambi impostati su 0: il valore dei bit 3:0 del campo di controllo di esecuzione VM della soglia TPR non deve essere maggiore del valore dei bit 7:4 di VTPR."

Questa condizione di errore tipicamente non si manifesta quando KVM viene eseguito su un sistema bare metal, poiché i processori moderni supportano APICv, che abilita la virtual-interrupt delivery e che KVM utilizza ove possibile. Ciò fa sì che il processore non generi più le uscite TPR-below-threshold (TPR sotto soglia) e non verifichi più TPR_THRESHOLD all'ingresso nella VM. Tuttavia, quando si esegue su piattaforme più vecchie o in virtualizzazione nidificata su un hypervisor che non supporta la virtual-interrupt delivery ed enforce questo controllo (come Hyper-V), ciò può causare un fallimento dell'ingresso nella VM con errore hardware 0x7, come osservato in [1].

Chiamare kvm_lapic_update_cr8_intercept() se apic_update_ppr() non trova un interrupt deliverable (e quindi non imposta KVM_REQ_EVENT). Rimuovere le chiamate a kvm_lapic_update_cr8_intercept() sui percorsi che terminano con apic_update_ppr(), poiché ora diventano ridondanti. Ciò garantisce che qualsiasi percorso che aggiorna il PPR dell'ospite determini anche se KVM deve attendere un cambiamento del TPR (utilizzando TPR_THRESHOLD su VMX o intercettazioni di CR8 su SVM).

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Responsabile

Linux

Prenotare

19/07/2026

Divulgazione

25/07/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00171

KEV

no

Attività

molto basso

Fonti

Do you need the next level of professionalism?

Upgrade your account now!