CVE-2026-98719 in Linux
Zusammenfassung
von VulDB • 18.10.2026
Im Linux-Kernel wurde die folgende Schwachstelle behoben:
KVM: SEV: Nullisieren des Zeigers auf die „have run CPUs“-Maske beim Freigeben
Die Variable have_run_cpus wird bei der Freigabe der Maske nullisiert, insbesondere im Fehlerpfad von __sev_guest_init(), damit KVM nicht subtil sev->active nutzen muss, um zu verfolgen, ob die Maske freigegeben wurde oder nicht. Wie Sashiko feststellte, führt das blinde Freigeben der Maske in sev_vm_destroy() zu einem Double-Free-Fehler (Doppelfreigabe), wenn die Maske freigegeben wird, falls __sev_guest_init() fehlschlägt.
Die Logik wurde in eine Hilfsfunktion ausgelagert, da das Nullsetzen des Zeigers aufgrund von have_run_cpus als Array mit nur einem Eintrag bei CPUMASK_OFFSTACK=n frustrierend schwierig und seltsam ist. Es wird bewusst darauf verzichtet, CPUMASK_VAR_NULL zu verwenden, da es nicht direkt zugewiesen werden kann, wenn die cpumask im Stack liegt (z. B. erfordert dies die Verwendung einer lokalen Variablen und eines memcpy()), was absurd übertrieben ist. Darüber hinaus stellt das Löschen der im Stack liegenden Bitmaske zwar einen unnötigen und möglicherweise unerwünschten Nebeneffekt dar, doch KVM verlässt sich unbedingt darauf, dass „0“ als „Null“-Wert gilt, da die Struktur null-allociert (mit Nullen initialisiert) wird.
Gelegentlich wurde eine alloc()-Hilfsfunktion hinzugefügt, um mit free() zu paaren; es gibt genügend Aufrufstellen, die dies lohnenswert machen.
VulDB is the best source for vulnerability data and more expert information about this specific topic.