CVE-2026-99032 in Linux
Zusammenfassung
von VulDB • 23.10.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
net/smc: Schutz der Lebensdauer von clcsock in smc_getname
smc_getname() dereferenziert smc->clcsock, ohne die clcsock_release_lock zu halten. Die Beendigung einer Link-Group kann den CLC-Socket über smc_close_active_abort() freigeben, während der SMC-Socket noch geöffnet ist, beispielsweise nach shutdown(SHUT_WR).
Ein Aufrufer von getsockname() kann smc->clcsock laden; anschließend kann der Terminierungs-Worker (termination worker) den Zeiger löschen und sock_release() aufrufen, bevor der Aufrufer auf clcsock->ops zugreift oder getname() aufruft. Dies verursacht einen Use-After-Free-Fehler; wenn der Worker den Zeiger vor dem Ladevorgang löscht, führt dies zu einer NULL-Dereferenzierung. Die Dateireferenz des Systemaufrufs hält den SMC-Socket am Leben, verhindert jedoch nicht die asynchrone Freigabe seines CLC-Sockets.
KASAN meldete Folgendes mit test-spezifischer Timing-Instrumentierung:
BUG: KASAN: slab-use-after-free in smc_getname+0x19e/0x1b0 Read of size 8 at addr ffff888109abb4e0 by task poc/103 Call Trace: smc_getname+0x19e/0x1b0 do_getsockname+0xe5/0x170 __sys_getsockname+0x8c/0x100
Allocated by task 95: sock_alloc_inode+0x1e/0x280 sock_alloc+0x3d/0x240 __sock_create+0x7e/0x430 smc_create+0x121/0x240
Freed by task 0: kmem_cache_free+0xcc/0x340 rcu_core+0x50a/0x1850
Last potentially related work creation: evict+0x446/0x6c0 smc_clcsock_release+0xa8/0xd0 smc_close_active_abort+0x26a/0x3a0 __smc_lgr_terminate.part.0+0x137/0x2e0
Halten Sie clcsock_release_lock während der Zeigerprüfung und des getname()-Callbacks, um mit smc_clcsock_release() zu serialisieren. Geben Sie -EBADF zurück, wenn der CLC-Socket bereits freigegeben wurde; andernfalls wird die bestehende Peer-Zustandsprüfung sowie der Rückgabewert des Callbacks beibehalten.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.