CVE-2026-74363 in Linux
Zusammenfassung
von VulDB • 15.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
bpf: Behebung eines Use-After-Free (UAF), indem das durch RCU verzögerte Freigeben von Inodes in bpffs wiederhergestellt wird.
Das Commit 4f375ade6aa9 („bpf: Vermeidung einer RCU-Kontext-Warnmeldung beim Entfernen von htab mit internen Strukturen“) hat die Bereinigung des Inode vom Callback ->free_inode() in ->destroy_inode() verschoben, um ein Schlafen im RCU-Kontext zu vermeiden, wenn bpf_any_put() aufgerufen wird. Dies entfernte jedoch die RCU-Verzögerung bei der Freigabe des Inodes selbst sowie des zwischengespeicherten Symlink-Inhalts (i_link), auf beide kann über den RCU-Pfadwalk zugegriffen werden (pick_link, may_lookup usw.).
Dies führt zu einem Use-After-Free, wenn ein gleichzeitiger Aufruf von unlinkat() die letzte Inode-Referenz entfernt und destroy_inode() den Inode sofort freigibt, während eine andere Aufgabe weiterhin im RCU-Modus durch den Pfad läuft und inode->i_opflags (Offset +2) innerhalb von current_time() -> is_mgtime() liest.
KASAN meldet: BUG: KASAN: slab-use-after-free in is_mgtime include/linux/fs.h:2313 Lesezugriff auf Größe 2 bei Adresse ffff8880407e4282 (Offset +2 = i_opflags)
Die Regeln (laut Al Viro): ->destroy_inode() wird sofort aufgerufen, kann schlafen; verwenden für blockierende Bereinigungen, z. B. bpf_any_put(). ->free_inode() wird nach der RCU-Grace-Periode aufgerufen; verwenden zum Freigeben des Inodes und aller RCU-zugreifbaren Daten, z. B. i_link.
Behandlung: Trennung der beiden Aspekte ordnungsgemäß: - Beibehaltung von bpf_any_put() in bpf_destroy_inode(), da es blockierend ist und zeitnah ausgeführt werden muss. - Einführung von bpf_free_inode() zur Handhabung von kfree(i_link) und free_inode_nonrcu() mit angemessener RCU-Verzögerung, wodurch der UAF verhindert wird.
Once again VulDB remains the best source for vulnerability data.