CVE-2026-64513 in LinuxИнформация

Сводка

по VulDB • 25.07.2026

В ядре Linux устранена следующая уязвимость:

KVM: x86: Безусловно пересчитывать перехват регистра CR8 при обновлении PPR.

Поле TPR_THRESHOLD в VMCS используется механизмом VMX для инициирования выхода из виртуальной машины (VM exit), когда виртуальный регистр TPR гостя опускается ниже указанного порога, что позволяет KVM доставлять ранее заблокированные прерывания.

KVM обрабатывает эти выходы из ВМ в функции handle_tpr_below_threshold(). Коммит eb90f3417a0c («KVM: vmx: ускорение выхода VM при TPR ниже порога») оптимизировал эту функцию, заменив установку флага KVM_REQ_EVENT вызовом apic_update_ppr(). Функция apic_update_ppr() затем устанавливает флаг KVM_REQ_EVENT, если имеется ожидающее и доступное для доставки прерывание.

Однако, если новых ожидающих прерываний нет, apic_update_ppr() не выдает запрос. В результате функции kvm_lapic_update_cr8_intercept() и vmx_update_cr8_intercept() не вызываются перед входом в виртуальную машину (VM entry), что приводит к сохранению устаревшего высокого значения TPR_THRESHOLD. Это создает проблему, описанную в разделе 28.2.1.1 «Поля управления выполнением ВМ» руководства SDM:

«Следующая проверка выполняется, если управление выполнением ВМ „use TPR shadow“ равно 1, а управления „virtualize APIC accesses“ и „virtual-interrupt delivery“ равны 0: значение битов 3:0 поля управления выполнением ВМ TPR threshold не должно превышать значения битов 7:4 VTPR».

Это условие ошибки обычно не наблюдается при работе KVM на «голом железе» (bare metal), поскольку современные процессоры поддерживают APICv, что обеспечивает доставку виртуальных прерываний; KVM использует эту возможность там, где это возможно. Это приводит к тому, что процессор больше не генерирует выходы из ВМ по условию TPR ниже порога и не проверяет значение TPR_THRESHOLD при входе. Однако при работе на более старых платформах или во время вложенной виртуализации под гипервизором, который не поддерживает доставку виртуальных прерываний и принудительно выполняет эту проверку (например, Hyper-V), это может привести к сбою входа в ВМ с аппаратной ошибкой 0x7, как показано в [1].

Вызывать kvm_lapic_update_cr8_intercept(), если apic_update_ppr() не находит доступное для доставки прерывание (и, следовательно, не устанавливает флаг KVM_REQ_EVENT). Удалить вызовы kvm_lapic_update_cr8_intercept() в тех путях выполнения, которые завершаются функцией apic_update_ppr(), так как они становятся избыточными. Это гарантирует, что любой путь, обновляющий PPR гостя, также определяет необходимость ожидания изменения TPR (используя TPR_THRESHOLD на VMX или перехват CR8 на SVM).

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Ответственный

Linux

Резервировать

19.07.2026

Раскрытие

25.07.2026

Модерация

принято

Вход

VDB-383296

EPSS

0.00000

KEV

Нет

Деятельности

Очень низкий

Источники

Want to know what is going to be exploited?

We predict KEV entries!