CVE-2025-39796

Summary

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

net: lapbether: ignore ops-locked netdevs

Syzkaller managed to trigger lock dependency in xsk_notify via register_netdevice. As discussed in [0], using register_netdevice in the notifiers is problematic so skip adding lapbeth for ops-locked devices.

   xsk_notifier+0xa4/0x280 net/xdp/xsk.c:1645
   notifier_call_chain+0xbc/0x410 kernel/notifier.c:85
   call_netdevice_notifiers_info+0xbe/0x140 net/core/dev.c:2230
   call_netdevice_notifiers_extack net/core/dev.c:2268 [inline]
   call_netdevice_notifiers net/core/dev.c:2282 [inline]
   unregister_netdevice_many_notify+0xf9d/0x2700 net/core/dev.c:12077
   unregister_netdevice_many net/core/dev.c:12140 [inline]
   unregister_netdevice_queue+0x305/0x3f0 net/core/dev.c:11984
   register_netdevice+0x18f1/0x2270 net/core/dev.c:11149
   lapbeth_new_device drivers/net/wan/lapbether.c:420 [inline]
   lapbeth_device_event+0x5b1/0xbe0 drivers/net/wan/lapbether.c:462
   notifier_call_chain+0xbc/0x410 kernel/notifier.c:85
   call_netdevice_notifiers_info+0xbe/0x140 net/core/dev.c:2230
   call_netdevice_notifiers_extack net/core/dev.c:2268 [inline]
   call_netdevice_notifiers net/core/dev.c:2282 [inline]
   __dev_notify_flags+0x12c/0x2e0 net/core/dev.c:9497
   netif_change_flags+0x108/0x160 net/core/dev.c:9526
   dev_change_flags+0xba/0x250 net/core/dev_api.c:68
   devinet_ioctl+0x11d5/0x1f50 net/ipv4/devinet.c:1200
   inet_ioctl+0x3a7/0x3f0 net/ipv4/af_inet.c:1001

0: https://lore.kernel.org/netdev/20250625140357.6203d0af@kernel.org/

Affected Software

VendorProductVersion RangeStatus
LinuxLinux4c975fd700022c90e61a46326e3444e08317876e < 57a7ef338a2cd62a22a15a199ab9afd3d953df55affected
LinuxLinux4c975fd700022c90e61a46326e3444e08317876e < 628e233c1fefcc227fae9bdcff6be8ac92e1b4d2affected
LinuxLinux4c975fd700022c90e61a46326e3444e08317876e < 53898ebabe843bfa7baea9dae152797d5d0563c9affected
LinuxLinux6.15affected
LinuxLinux0 < 6.15unaffected
LinuxLinux6.15.11 <= 6.15.*unaffected
LinuxLinux6.16.2 <= 6.16.*unaffected
LinuxLinux6.17 <= *unaffected

Weaknesses

References