CVE-2026-74398 in Linux
Zusammenfassung
von VulDB • 17.08.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
ipv6: addrconf: Abbruch von dad_failure, wenn der Zustand nicht mehr POSTDAD ist
addrconf_dad_failure() wechselt ifp->state von DAD zu POSTDAD über addrconf_dad_end(), wodurch ifp->lock bei Rückgabe freigegeben wird. Der Lock wird nach net_info_ratelimited() erneut erworben. Ein gleichzeitiger Aufruf von ipv6_del_addr() kann den Lock in diesem Zeitfenster übernehmen, ifp->state auf DEAD setzen und list_del_rcu(&ifp->if_list) ausführen.
addrconf_dad_failure() überschreibt dann bei errdad: DEAD mit ERRDAD und plant eine neue dad_work-Instanz ein. Die Arbeit ruft ipv6_del_addr() erneut auf und trifft dabei auf den bereits vergifteten Listeneintrag:
general protection fault: 0000 [#1] SMP NOPTI
CPU: 4 PID: 217 Comm: kworker/4:1 Workqueue: ipv6_addrconf addrconf_dad_work RIP: 0010:ipv6_del_addr+0xe9/0x280 RAX: dead000000000122 Call Trace: addrconf_dad_stop+0x113/0x140 addrconf_dad_work+0x28c/0x430 process_one_work+0x1eb/0x3b0 worker_thread+0x4d/0x400 kthread+0x104/0x140 ret_from_fork+0x35/0x40
Der Logikteil von addrconf_dad_end() wird in addrconf_dad_failure() unter einem einzigen kritischen Abschnitt (critical section) für ifp->lock zusammengefasst. Der Zweig STABLE_PRIVACY gibt ifp->lock vorübergehend während der Adresserneuerung frei, daher ist bei lock_errdad: zu überprüfen, ob der Zustand weiterhin POSTDAD ist, bevor auf ERRDAD gewechselt wird; andernfalls ist abzubrechen, um das Überschreiben eines Zustands durch einen anderen Pfad zu vermeiden, während der Lock freigegeben war.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.