CVE-2025-39925
Unknown Unknown - Not Provided
BaseFortify

Publication date: 2025-10-01

Last updated on: 2025-12-11

Assigner: kernel.org

Description
In the Linux kernel, the following vulnerability has been resolved: can: j1939: implement NETDEV_UNREGISTER notification handler syzbot is reporting unregister_netdevice: waiting for vcan0 to become free. Usage count = 2 problem, for j1939 protocol did not have NETDEV_UNREGISTER notification handler for undoing changes made by j1939_sk_bind(). Commit 25fe97cb7620 ("can: j1939: move j1939_priv_put() into sk_destruct callback") expects that a call to j1939_priv_put() can be unconditionally delayed until j1939_sk_sock_destruct() is called. But we need to call j1939_priv_put() against an extra ref held by j1939_sk_bind() call (as a part of undoing changes made by j1939_sk_bind()) as soon as NETDEV_UNREGISTER notification fires (i.e. before j1939_sk_sock_destruct() is called via j1939_sk_release()). Otherwise, the extra ref on "struct j1939_priv" held by j1939_sk_bind() call prevents "struct net_device" from dropping the usage count to 1; making it impossible for unregister_netdevice() to continue. [mkl: remove space in front of label]
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2025-10-01
Last Modified
2025-12-11
Generated
2026-05-07
AI Q&A
2025-10-01
EPSS Evaluated
2026-05-05
NVD
Affected Vendors & Products
Showing 6 associated CPEs
Vendor Product Version / Range
linux linux_kernel From 5.4 (inc) to 6.16.8 (exc)
linux linux_kernel 6.17
linux linux_kernel 6.17
linux linux_kernel 6.17
linux linux_kernel 6.17
linux linux_kernel 6.17
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-NVD-CWE-noinfo
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

This vulnerability in the Linux kernel's j1939 protocol occurs because it lacked a NETDEV_UNREGISTER notification handler to undo changes made by the j1939_sk_bind() function. Without this handler, an extra reference held by j1939_sk_bind() is not released when a network device is unregistered, causing the usage count of the device to remain too high. This prevents the unregister_netdevice() function from completing properly, potentially leading to resource leaks or device unregistration failures.


How can this vulnerability impact me? :

The vulnerability can cause the network device (specifically related to the j1939 protocol) to remain in use longer than intended because its usage count does not drop correctly. This can lead to failures in unregistering network devices, which may result in resource leaks, system instability, or unexpected behavior in network communications involving the j1939 protocol.


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability can be detected by monitoring for the error message 'unregister_netdevice: waiting for vcan0 to become free. Usage count = 2' in kernel logs, which indicates the issue with the j1939 protocol's NETDEV_UNREGISTER notification handler. You can check kernel logs using commands like 'dmesg | grep unregister_netdevice' or 'journalctl -k | grep unregister_netdevice' to identify this problem.


What immediate steps should I take to mitigate this vulnerability?

Immediate mitigation involves updating the Linux kernel to a version that includes the fix implementing the NETDEV_UNREGISTER notification handler for the j1939 protocol, which properly handles the release of references and prevents the usage count from being stuck. Until the update is applied, monitoring for the error and avoiding operations that trigger unregister_netdevice on j1939 interfaces may help reduce impact.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart