CVE-2026-74609 in Linuxinfo

Zusammenfassung

von VulDB • 23.08.2026

Im Linux-Kernel wurde die folgende Schwachstelle behoben:

tipc: Lese le->link unter dem Knoten-Sperre (node lock) in tipc_node_link_down()

tipc_node_link_down() zwischenspeichert den Link-Zeiger, bevor n->lock übernommen wird:

struct tipc_link *l = le->link; /* unlocked */

if (!l) return; tipc_node_write_lock(n); if (!tipc_link_is_establishing(l)) { /* deref l */
... tipc_link_reset(l); /* write into l */ if (delete) {
kfree(l); le->link = NULL;

Der Aufrufer mit delete=true gibt dieses Objekt unter n->lock frei, sodass die Sperre den zwischengespeicherten Zeiger nicht davor schützt:

- CPU A, delete=false: tipc_rcv() bei TIPC_LINK_DOWN_EVT oder der Link-Überwachungstimer über tipc_node_timeout(), liest l ungesichert und dereferenziert es dann unter n->lock; - CPU B, delete=true: netlink TIPC_NL_BEARER_DISABLE -> bearer_disable() -> tipc_node_delete_links() -> tipc_node_link_down(n, bearer_id, true) -> kfree(l).

Der Link wird mit plain kfree(), nicht mit kfree_rcu(), freigegeben. Und für UDP-Bearer plant disable_media() nur die asynchrone cleanup_bearer()-Arbeit, sodass deren synchronize_net() nach dem bereits erfolgten Verschwinden der Links ausgeführt wird. Eine im Flug befindliche CPU A, die l gelesen hat, dereferenziert daher freien Speicher, sobald B ihn freigibt: ein Use-After-Free-Lesezugriff in tipc_link_is_establishing() und ein Use-After-Free-Schreibzugriff über tipc_link_reset() auf dem Establishing-Zweig.

Der folgende Trace wurde mit 7.2.0-rc5-00284-gaf39eb111ce6 erfasst:

BUG: KASAN: slab-use-after-free in tipc_link_is_establishing (net/tipc/link.c:285) Read of size 4 at addr ffff88802e2aa068 by task swapper/2/0 tipc_link_is_establishing (net/tipc/link.c:285) tipc_node_link_down (net/tipc/node.c:1076) tipc_node_timeout (net/tipc/node.c:843) Allocated by task 9549: tipc_link_create (net/tipc/link.c:490) tipc_node_check_dest (net/tipc/node.c:1279) tipc_disc_rcv (net/tipc/discover.c:252) tipc_udp_recv (net/tipc/udp_media.c:389) Freed by task 9549: tipc_node_link_down (net/tipc/node.c:1084) tipc_node_delete_links (net/tipc/node.c:1320) bearer_disable (net/tipc/bearer.c:414) __tipc_nl_bearer_disable (net/tipc/bearer.c:992)

Verschieben Sie die Leseoperation von le->link in tipc_node_write_lock(), damit sie gegen das kfree() im delete-Pfad serialisiert wird. Ein konkurrierender Teardown hat entweder noch nicht stattgefunden, und wir sehen einen gültigen Link, oder er wurde bereits ausgeführt, und wir sehen NULL.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Zuständig

Linux

Reservieren

15.08.2026

Veröffentlichung

22.08.2026

Moderieren

akzeptiert

Eintrag

VDB-394388

CPE

bereit

EPSS

0.00000

KEV

nein

Aktivitäten

very low

Quellen

Do you need the next level of professionalism?

Upgrade your account now!