CVE-2025-38683

Severity CVSS v4.0:
Pending analysis
Type:
CWE-476 NULL Pointer Dereference
Publication date:
04/09/2025
Last modified:
08/01/2026

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> hv_netvsc: Fix panic during namespace deletion with VF<br /> <br /> The existing code move the VF NIC to new namespace when NETDEV_REGISTER is<br /> received on netvsc NIC. During deletion of the namespace,<br /> default_device_exit_batch() &gt;&gt; default_device_exit_net() is called. When<br /> netvsc NIC is moved back and registered to the default namespace, it<br /> automatically brings VF NIC back to the default namespace. This will cause<br /> the default_device_exit_net() &gt;&gt; for_each_netdev_safe loop unable to detect<br /> the list end, and hit NULL ptr:<br /> <br /> [ 231.449420] mana 7870:00:00.0 enP30832s1: Moved VF to namespace with: eth0<br /> [ 231.449656] BUG: kernel NULL pointer dereference, address: 0000000000000010<br /> [ 231.450246] #PF: supervisor read access in kernel mode<br /> [ 231.450579] #PF: error_code(0x0000) - not-present page<br /> [ 231.450916] PGD 17b8a8067 P4D 0<br /> [ 231.451163] Oops: Oops: 0000 [#1] SMP NOPTI<br /> [ 231.451450] CPU: 82 UID: 0 PID: 1394 Comm: kworker/u768:1 Not tainted 6.16.0-rc4+ #3 VOLUNTARY<br /> [ 231.452042] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 11/21/2024<br /> [ 231.452692] Workqueue: netns cleanup_net<br /> [ 231.452947] RIP: 0010:default_device_exit_batch+0x16c/0x3f0<br /> [ 231.453326] Code: c0 0c f5 b3 e8 d5 db fe ff 48 85 c0 74 15 48 c7 c2 f8 fd ca b2 be 10 00 00 00 48 8d 7d c0 e8 7b 77 25 00 49 8b 86 28 01 00 00 8b 50 10 4c 8b 2a 4c 8d 62 f0 49 83 ed 10 4c 39 e0 0f 84 d6 00<br /> [ 231.454294] RSP: 0018:ff75fc7c9bf9fd00 EFLAGS: 00010246<br /> [ 231.454610] RAX: 0000000000000000 RBX: 0000000000000002 RCX: 61c8864680b583eb<br /> [ 231.455094] RDX: ff1fa9f71462d800 RSI: ff75fc7c9bf9fd38 RDI: 0000000030766564<br /> [ 231.455686] RBP: ff75fc7c9bf9fd78 R08: 0000000000000000 R09: 0000000000000000<br /> [ 231.456126] R10: 0000000000000001 R11: 0000000000000004 R12: ff1fa9f70088e340<br /> [ 231.456621] R13: ff1fa9f70088e340 R14: ffffffffb3f50c20 R15: ff1fa9f7103e6340<br /> [ 231.457161] FS: 0000000000000000(0000) GS:ff1faa6783a08000(0000) knlGS:0000000000000000<br /> [ 231.457707] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033<br /> [ 231.458031] CR2: 0000000000000010 CR3: 0000000179ab2006 CR4: 0000000000b73ef0<br /> [ 231.458434] Call Trace:<br /> [ 231.458600] <br /> [ 231.458777] ops_undo_list+0x100/0x220<br /> [ 231.459015] cleanup_net+0x1b8/0x300<br /> [ 231.459285] process_one_work+0x184/0x340<br /> <br /> To fix it, move the ns change to a workqueue, and take rtnl_lock to avoid<br /> changing the netdev list when default_device_exit_net() is using it.

Vulnerable products and versions

CPE From Up to
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.19.323 (including) 4.20 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.4.285 (including) 5.5 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.10.229 (including) 5.10.241 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.15.170 (including) 5.15.190 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.1.115 (including) 6.1.149 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.6.59 (including) 6.6.103 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.11.6 (including) 6.12 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.12.1 (including) 6.12.43 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (including) 6.15.11 (excluding)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.16 (including) 6.16.2 (excluding)
cpe:2.3:o:linux:linux_kernel:6.12:-:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc6:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.12:rc7:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc1:*:*:*:*:*:*