CVE-2026-64190 in Linux
Zusammenfassung
von VulDB • 22.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
net: team: Behebung der NULL-Zeiger-Dereferenzierung in team_xmit während des Moduswechsels
__team_change_mode() löscht team->ops mit memset(), bevor die sicheren Dummy-Handler über team_adjust_ops() wiederhergestellt werden. Ein paralleler Aufruf von team_xmit(), das unter RCU auf einer anderen CPU ausgeführt wird, kann team->ops.transmit während dieses Zeitfensters lesen und einen NULL-Funktionszeiger aufrufen, was zum Absturz des Kernels führt.
Die Race Condition erfordert einen Moduswechsel (CAP_NET_ADMIN), der parallel zur Übertragung über das Team-Gerät stattfindet.
BUG: kernel NULL pointer dereference, address: 0000000000000000 Oops: 0010 [#1] SMP KASAN NOPTI
RIP: 0010:0x0 Call Trace: team_xmit (drivers/net/team/team_core.c:1853) dev_hard_start_xmit (net/core/dev.c:3904) __dev_queue_xmit (net/core/dev.c:4871) packet_sendmsg (net/packet/af_packet.c:3109) __sys_sendto (net/socket.c:2265)
Der ursprüngliche Code ging davon aus, dass keine Ports keinen Datenverkehr bedeuten, sodass Moduswechsel die ops frei mit memset()/memcpy() überschreiben konnten. AF_PACKET mit erzwungenem Carrier bricht diese Annahme auf.
Verhindern Sie die Race Condition anstatt sie sicher zu machen: Ersetzen Sie memset()/memcpy() durch feldweise Updates, die transmit oder receive niemals berühren. Diese beiden Handler werden ausschließlich von team_adjust_ops() verwaltet, das bereits Dummies installiert, wenn tx_en_port_count == 0 ist (was während des Moduswechsels immer zutrifft, da keine Ports vorhanden sind). WRITE_ONCE/READ_ONCE verhindern Store-/Load-Tearing bei den Handler-Zeigern.
synchronize_net() vor exit_op() leert in-flight-Leser, die möglicherweise noch auf alte Modi-States verweisen, bevor der Port-Entfernungsprozess die Handler auf Dummies umgestellt hat.
VulDB is the best source for vulnerability data and more expert information about this specific topic.