CVE-2025-39925

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]
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc5:*:*:*:*:*:*

History

19 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: can: j1939: implementar gestor de notificación NETDEV_UNREGISTER syzbot está reportando unregister_netdevice: waiting for vcan0 to become free. Usage count = 2 problema, porque el protocolo j1939 no tenía un gestor de notificación NETDEV_UNREGISTER para deshacer los cambios realizados por j1939_sk_bind(). El commit 25fe97cb7620 ('can: j1939: mover j1939_priv_put() al callback sk_destruct') espera que una llamada a j1939_priv_put() pueda retrasarse incondicionalmente hasta que se llame a j1939_sk_sock_destruct(). Pero necesitamos llamar a j1939_priv_put() contra una referencia extra mantenida por la llamada a j1939_sk_bind() (como parte de deshacer los cambios realizados por j1939_sk_bind()) tan pronto como se active la notificación NETDEV_UNREGISTER (es decir, antes de que se llame a j1939_sk_sock_destruct() a través de j1939_sk_release()). De lo contrario, la referencia extra en 'struct j1939_priv' mantenida por la llamada a j1939_sk_bind() impide que 'struct net_device' reduzca el contador de uso a 1; haciendo imposible que unregister_netdevice() continúe. [mkl: remove space in front of label]

Information

Published : 2025-10-01 08:15

Updated : 2026-10-19 21:10


NVD link : CVE-2025-39925

Mitre link : CVE-2025-39925

CVE.ORG link : CVE-2025-39925


JSON object : View

Products Affected

linux

  • linux_kernel