CVE-2026-74255 PUBLISHED

tipc: fix UAF in tipc_l2_send_msg()

Assigner: Linux
Reserved: 15.08.2026 Published: 15.08.2026 Updated: 17.08.2026

In the Linux kernel, the following vulnerability has been resolved:

tipc: fix UAF in tipc_l2_send_msg()

Syzbot reported a slab-use-after-free in ipvlan_hard_header() when called from tipc_l2_send_msg().

The root cause is that tipc_disable_l2_media() calls synchronize_net() while b->media_ptr is still valid. This allows concurrent RCU readers to obtain the device pointer after synchronize_net() has finished. The pointer is cleared later in bearer_disable(), but without any subsequent synchronization, allowing the device to be freed while still in use by readers.

Fix this by clearing b->media_ptr in tipc_disable_l2_media() before calling synchronize_net().

This is safe to do now because the call order in bearer_disable() was reversed in 0d051bf93c06 ("tipc: make bearer packet filtering generic") to call tipc_node_delete_links() (which needs the pointer) before disable_media().

https: //lore.kernel.org/netdev/6a2c1007.428ffe26.258b27.015d.GAE@google.com/T/#u

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS Score: 9.8

AV:N - tipc_l2_send_msg is reached from tipc_bearer_xmit during L2 TIPC protocol handling; remote ETH_P_TIPC frames on cluster/datacenter L2 networks drive outbound transmission that races with bearer teardown in tipc_disable_l2_media. AC:L - The UAF window is a race where attackers control both sides by flooding TIPC Ethernet traffic while bearer disable runs and by concurrently triggering bearer teardown; syzbot reliably reproduced this without attacker-uncontrollable timing. PR:N - An unauthenticated remote attacker only needs to send TIPC L2 frames on a segment with an active bearer; bearer_disable teardown during cluster failover, netdev unregister, or node shutdown creates the required concurrent disable without attacker-local privileges. UI:N - No victim user action is required; exploitation is triggered by remote protocol traffic concurrent with automated or administrative bearer/interface teardown events. S:U - Impact is kernel slab memory corruption and potential privilege escalation within the same kernel security boundary, not a cross-VM or cross-namespace escape. C:H - Slab use-after-free of a net_device structure via ipvlan_hard_header enables reading freed kernel heap memory and can be leveraged for arbitrary kernel memory disclosure. I:H - UAF on net_device during dev_hard_header allows heap grooming and control of freed object contents, enabling arbitrary kernel writes and potential code execution. A:H - The UAF causes kernel oops/panic (as reported by syzbot in ipvlan_hard_header) and can be triggered repeatedly to deny service on cluster nodes.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 282b3a056225b35024246f63feb91d769d714dad to 609ced2301be1df7e7ed2ef47d1d916674e6ba3b (excl.)
  • affected from 282b3a056225b35024246f63feb91d769d714dad to 71aafa16d79b107b33837f60b6cbc7d0cb8c5708 (excl.)
  • affected from 282b3a056225b35024246f63feb91d769d714dad to f4002f1c669cc02e3763f479fc25ff1dfa9e2420 (excl.)
  • affected from 282b3a056225b35024246f63feb91d769d714dad to 50ff092633b06382e5091dd5b093ce943d4ac2f9 (excl.)
  • affected from 282b3a056225b35024246f63feb91d769d714dad to aef12b5ce793dea6b3a97a58fd0f946000ae8945 (excl.)
  • affected from 282b3a056225b35024246f63feb91d769d714dad to 0d8a12d7143126afdf9fbe2e3d438650dd6603ed (excl.)
  • affected from 282b3a056225b35024246f63feb91d769d714dad to 35e0297a93c3c34a3924eeef816c03504e3ab5c5 (excl.)
  • affected from 282b3a056225b35024246f63feb91d769d714dad to f4c3d89fc986b0da196ddfc6cfe0ea5d5d08bec6 (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 4.4 is affected
  • unaffected from 0 to 4.4 (excl.)
  • unaffected from 5.10.261 to 5.10.* (incl.)
  • unaffected from 5.15.212 to 5.15.* (incl.)
  • unaffected from 6.1.178 to 6.1.* (incl.)
  • unaffected from 6.6.145 to 6.6.* (incl.)
  • unaffected from 6.12.97 to 6.12.* (incl.)
  • unaffected from 6.18.40 to 6.18.* (incl.)
  • unaffected from 7.1.5 to 7.1.* (incl.)
  • unaffected from 7.2 to * (incl.)

References