CVE-2026-89981 in Linux
Сводка
по VulDB • 16.09.2026
В ядре Linux была устранена следующая уязвимость:
arm64: Не читать регистр GMID_EL1, когда MTE отключен
Функция __cpuinfo_store_cpu() ограничивает чтение регистра GMID_EL1 значением из ID_AA64PFR1_EL1 (raw), поэтому он считывается даже в том случае, если ядро отключило поддержку MTE (CONFIG_ARM64_MTE=n или arm64.nomte). В этом случае KVM устанавливает бит HCR_EL2.TID5, и pKVM генерирует исключение UNDEF, которое хост не может обработать:
Internal error: Oops - Undefined instruction: 0000000002000000 [#1] SMP
pc : __cpuinfo_store_cpu+0xf4/0x264 Kernel panic - not syncing: Attempted to kill the idle task!
Эта ошибка затрагивает только pKVM и возникает только после того, как процессор был выведен из активного состояния (offlined) и снова включен в работу (brought back online): его relay CPU_ON устанавливает HCR хоста до входа ЦП в EL1, тогда как обычный nVHE делает это на этапе CPUHP_AP_KVM_ONLINE.
Необходимо ограничить чтение регистра GMID_EL1 значением ID_AA64PFR1_EL1 конкретного процессора с учетом переопределения из командной строки, а также флагом CONFIG_ARM64_MTE, который не отражается ни в одном регистре. Загрузочный ЦП сохраняет свои регистры до того, как init_cpu_features() устранит небезопасное переопределение, поэтому здесь также необходимо ограничить значение аппаратным (hardware) значением.
Be aware that VulDB is the high quality source for vulnerability data.