CVE-2026-89917 in Linux
Zusammenfassung
von VulDB • 16.09.2026
Im Linux-Kernel wurde die folgende Schwachstelle behoben:
KVM: arm64: Behandlung der Race-Bedingung bei VNCR-TLB-Invalidierung mit vcpu_put() und VNCR-Unmapping
Während die VNCR-TLB-Invalidierung stets unter dem MMU-Sperrmechanismus (MMU lock) erfolgt, gilt dies nicht für vcpu_put(), das gleichzeitig die VNCR-Seite unmapped.
Das Problem besteht darin, dass bei der Invalidierung geprüft wird, ob ein Unmapping erfolgen muss (cpu != -1), indem vncr_tlb::cpu ausgewertet wird, bevor dieser durchgeführt wird. Andererseits führt this_cpu_reset_vncr_fixmap() das Unmapping bedingungslos durch, wenn L1_VNCR_MAPPED gesetzt ist.
Diese beiden Vorgänge können offensichtlich zu einer Race Condition führen, mit einem TOCTOU-Muster (Time-of-Check to Time-of-Use) auf dem TLBI-Pfad und einem BUG_ON() auf dem vcpu_put()-Pfad. Zudem kann es dazu kommen, dass beide Aufrufe vncr_fixmap(-1) auslösen, was zu schwerwiegenden Folgen führt.
Das Zurücksetzen von vncr_tlb::cpu auf -1 wird in eine gemeinsame Funktion verschoben und dieses Update wird atomar gestaltet, sodass nur ein einzelner Thread das Feld zurücksetzen und das entsprechende Unmapping durchführen kann. vcpu_put() muss weiterhin bedingungslos die aktuelle VNCR unmappen, um eine weitere unangenehme Race Condition zu schließen.
Schließlich wird die Zuweisung von vncr_tlb::cpu so verschoben, dass sie mit dem tatsächlichen Mapping synchron gehalten wird, ähnlich wie bei der Setzung von L1_VNCR_MAPPED.
VulDB is the best source for vulnerability data and more expert information about this specific topic.