В ядре Linux устранена следующая уязвимость:
KVM: Arm64: GICv2: Не ПРЕДУПРЕЖДАТЬ, если GICV_DIR INTID находится вне диапазона
vgic_v2_deactivate() передает INTID, который гость написал в GICV_DIR, напрямую
в vgic_get_vcpu_irq() и рассматривает неудачный поиск как «невозможно»
условие с помощью WARN_ON_ONCE(). Однако гость может сделать это по своему желанию: для любого INTID за пределами
реализованные диапазоны SGI, PPI и SPI, поиск возвращает NULL, поскольку
GICv2 не имеет LPI. Гость, работающий с EOImode==1, записывает такой INTID
в GICV_DIR вызывает предупреждение и паникует хосты, работающие с
паника_он_предупреждение.
Отбросьте WARN и игнорируйте неудачные поиски.
Показать оригинальное описание (EN)
In the Linux kernel, the following vulnerability has been resolved: KVM: arm64: GICv2: Don't WARN on out-of-range GICV_DIR INTID vgic_v2_deactivate() passes the INTID a guest wrote to GICV_DIR straight to vgic_get_vcpu_irq(), and treats a failed lookup as a "can't happen" condition with WARN_ON_ONCE(). The guest can make it happen at will, though: for any INTID outside of the implemented SGI, PPI and SPI ranges the lookup returns NULL, since GICv2 has no LPIs. A guest running with EOImode==1 writing such an INTID to GICV_DIR triggers the WARN, and panics hosts running with panic_on_warn. Drop the WARN and ignore failed lookups.