In the Linux kernel, the following vulnerability has been resolved:
usbnet: Fix using smpprocessorid() in preemptible code warnings
Syzbot reported the following warning:
BUG: using smpprocessorid() in preemptible [00000000] code: dhcpcd/2879 caller is usbnetskbreturn+0x74/0x490 drivers/net/usb/usbnet.c:331 CPU: 1 UID: 0 PID: 2879 Comm: dhcpcd Not tainted 6.15.0-rc4-syzkaller-00098-g615dca38c2ea #0 PREEMPT(voluntary) Call Trace: <TASK> _dumpstack lib/dumpstack.c:94 [inline] dumpstacklvl+0x16c/0x1f0 lib/dumpstack.c:120 checkpreemptiondisabled+0xd0/0xe0 lib/smpprocessorid.c:49 usbnetskbreturn+0x74/0x490 drivers/net/usb/usbnet.c:331 usbnetresumerx+0x4b/0x170 drivers/net/usb/usbnet.c:708 usbnetchangemtu+0x1be/0x220 drivers/net/usb/usbnet.c:417 _devsetmtu net/core/dev.c:9443 [inline] netifsetmtuext+0x369/0x5c0 net/core/dev.c:9496 netifsetmtu+0xb0/0x160 net/core/dev.c:9520 devsetmtu+0xae/0x170 net/core/devapi.c:247 devifsioc+0xa31/0x18d0 net/core/devioctl.c:572 devioctl+0x223/0x10e0 net/core/devioctl.c:821 sockdoioctl+0x19d/0x280 net/socket.c:1204 sockioctl+0x42f/0x6a0 net/socket.c:1311 vfsioctl fs/ioctl.c:51 [inline] _dosysioctl fs/ioctl.c:906 [inline] _sesysioctl fs/ioctl.c:892 [inline] _x64sysioctl+0x190/0x200 fs/ioctl.c:892 dosyscallx64 arch/x86/entry/syscall64.c:63 [inline] dosyscall64+0xcd/0x260 arch/x86/entry/syscall64.c:94 entrySYSCALL64afterhwframe+0x77/0x7f
For historical and portability reasons, the netifrx() is usually run in the softirq or interrupt context, this commit therefore add localbhdisable/enable() protection in the usbnetresume_rx().
[
{
"digest": {
"line_hashes": [
"20925523364433562944399627570854245232",
"308875407975415729389691464609472076553",
"265597986903625423716918541424073273418",
"307043526929131939725261386375385555034",
"74398590039782447429349185816575381769",
"137852146855077785603663547934985902936",
"215327502610369147710324706123056565441"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/usb/usbnet.c"
},
"signature_type": "Line",
"id": "CVE-2025-40164-71a01d01",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0134c7bff14bd50314a4f92b182850ddfc38e255"
},
{
"digest": {
"length": 370.0,
"function_hash": "123693641883462803287642356193394198416"
},
"target": {
"file": "drivers/net/usb/usbnet.c",
"function": "usbnet_resume_rx"
},
"signature_type": "Function",
"id": "CVE-2025-40164-a897227f",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@327cd4b68b4398b6c24f10eb2b2533ffbfc10185"
},
{
"digest": {
"length": 370.0,
"function_hash": "123693641883462803287642356193394198416"
},
"target": {
"file": "drivers/net/usb/usbnet.c",
"function": "usbnet_resume_rx"
},
"signature_type": "Function",
"id": "CVE-2025-40164-ac3b8e36",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@0134c7bff14bd50314a4f92b182850ddfc38e255"
},
{
"digest": {
"line_hashes": [
"20925523364433562944399627570854245232",
"308875407975415729389691464609472076553",
"265597986903625423716918541424073273418",
"307043526929131939725261386375385555034",
"74398590039782447429349185816575381769",
"137852146855077785603663547934985902936",
"215327502610369147710324706123056565441"
],
"threshold": 0.9
},
"target": {
"file": "drivers/net/usb/usbnet.c"
},
"signature_type": "Line",
"id": "CVE-2025-40164-ba8efe76",
"signature_version": "v1",
"deprecated": false,
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@327cd4b68b4398b6c24f10eb2b2533ffbfc10185"
}
]