CVE-2025-40164: usbnet: Fix using smp_processor_id() in preemptible code warnings

Published Nov 12, 2025
·
Updated

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 usbnetresumerx().

Affected Software

13 affected componentsFixes available
Linux Linux kernel
Microsoft azl3 kernel 6.6.112.1-2
Microsoft azl3 kernel 6.6.117.1-1
Linux Linux kernel>=4.7.1<5.15.199
Linux Linux kernel>=5.16<6.1.162
Linux Linux kernel>=6.2<6.6.122
Linux Linux kernel>=6.7<6.12.64
Linux Linux kernel>=6.13<6.17.5
Linux Linux kernel=4.7
Linux Linux kernel=4.7-rc7
Linux Linux kernel=6.18-rc1
Microsoft azl3 kernel 6.6.121.1-1
Microsoft cbl2 kernel 5.15.186.1-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Configuration

    Add local_bh_disable() at the start and local_bh_enable() at the end of usbnet_resume_rx() (and surrounding code paths as appropriate) to protect against calling smp_processor_id() from preemptible context and eliminate the preemptible-code warning.

    Linux kernel drivers/net/usb/usbnet (usbnet_resume_rx) local_bh_disable/enable protection = add local_bh_disable(); ... local_bh_enable()

Event History

Nov 12, 2025
CVE Published
via MITRE·10:26 AM
Data Sourced
via MITRE·10:26 AM
Description
Data Sourced
via NVD·11:15 AM
RemedyDescriptionSeverityAffected Software
Nov 13, 2025
Data Sourced
via Microsoft·01:02 AM
DescriptionSeverityWeaknessAffected Software
Updated
via Microsoft·01:02 AM
Affected Software
Updated
via Microsoft·09:02 AM
Affected Software
Updated
via Microsoft·09:02 AM
DescriptionSeverity
Updated
via Microsoft·09:02 AM
SeverityAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2025-40164?

CVE-2025-40164 has been classified as a moderate severity vulnerability affecting the Linux kernel.

2

How do I fix CVE-2025-40164?

To fix CVE-2025-40164, update your Linux kernel to the latest patched version that addresses this vulnerability.

3

What type of vulnerability is CVE-2025-40164?

CVE-2025-40164 is a preemptibility issue related to improper usage of smp_processor_id() in the Linux kernel.

4

Which systems are affected by CVE-2025-40164?

CVE-2025-40164 affects systems running vulnerable versions of the Linux kernel.

5

What is the impact of CVE-2025-40164?

The impact of CVE-2025-40164 can lead to potential instability in kernel operations due to incorrect processor identification in preemptible code.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203