cbcvebase.
CVE-2026-23167
published 2026-02-14

CVE-2026-23167: In the Linux kernel, the following vulnerability has been resolved: nfc: nci: Fix race between rfkill and nci_unregister_device(). syzbot reported the splat…

PriorityP417medium4.7CVSS 3.1
AVLACHPRLUINSUCNINAH
EPSS
0.09%
0.4th percentile
In the Linux kernel, the following vulnerability has been resolved: nfc: nci: Fix race between rfkill and nci_unregister_device(). syzbot reported the splat below [0] without a repro. It indicates that struct nci_dev.cmd_wq had been destroyed before nci_close_device() was called via rfkill. nci_dev.cmd_wq is only destroyed in nci_unregister_device(), which (I think) was called from virtual_ncidev_close() when syzbot close()d an fd of virtual_ncidev. The problem is that nci_unregister_device() destroys nci_dev.cmd_wq first and then calls nfc_unregister_device(), which removes the device from rfkill by rfkill_unregister(). So, the device is still visible via rfkill even after nci_dev.cmd_wq is destroyed. Let's unregister the device from rfkill first in nci_unregister_device(). Note that we cannot call nfc_unregister_device() before nci_close_device() because 1) nfc_unregister_device() calls device_del() which frees all memory allocated by devm_kzalloc() and linked to ndev->conn_info_list 2) nci_rx_work() could try to queue nci_conn_info to ndev->conn_info_list which could be leaked Thus, nfc_unregister_device() is split into two functions so we can remove rfkill interfaces only before nci_close_device(). [0]: DEBUG_LOCKS_WARN_ON(1) WARNING: kernel/locking/lockdep.c:238 at hlock_class kernel/locking/lockdep.c:238 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at check_wait_context kernel/locking/lockdep.c:4854 [inline], CPU#0: syz.0.8675/6349 WARNING: kernel/locking/lockdep.c:238 at __lock_acquire+0x39d/0x2cf0 kernel/locking/lockdep.c:5187, CPU#0: syz.0.8675/6349 Modules linked in: CPU: 0 UID: 0 PID: 6349 Comm: syz.0.8675 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/13/2026 RIP: 0010:hlock_class kernel/locking/lockdep.c:238 [inline] RIP: 0010:check_wait_context kernel/locking/lockdep.c:4854 [inline] RIP: 0010:__lock_acquire+0x3a4/0x2cf0 kernel/locking/lockdep

Affected

61 ranges· showing 25
VendorProductVersion rangeFixed in
debianlinux< linux 6.1.162-1 (bookworm)linux 6.1.162-1 (bookworm)
linuxlinux
linuxlinux>= 6a2968aaf50c7a22fced77a5e24aa636281efca8 < cd4412d5905ee580e96c48360dc98fcd9e6f3208cd4412d5905ee580e96c48360dc98fcd9e6f3208
linuxlinux>= 6a2968aaf50c7a22fced77a5e24aa636281efca8 < eaa5da5130deda26420273d4610cf6e4f794ed75eaa5da5130deda26420273d4610cf6e4f794ed75
linuxlinux>= 6a2968aaf50c7a22fced77a5e24aa636281efca8 < 8ea4d96419fb20f15a52ce657d49f1e7c91eb7ac8ea4d96419fb20f15a52ce657d49f1e7c91eb7ac
linuxlinux>= 6a2968aaf50c7a22fced77a5e24aa636281efca8 < 546eba0b10989de9ccc7fd619e874a30561e2b88546eba0b10989de9ccc7fd619e874a30561e2b88
linuxlinux>= 6a2968aaf50c7a22fced77a5e24aa636281efca8 < 126cd30cad37bc7c2c85fe2df2a522d4edf0a5c5126cd30cad37bc7c2c85fe2df2a522d4edf0a5c5
linuxlinux>= 6a2968aaf50c7a22fced77a5e24aa636281efca8 < c3369fc5e6120a72169e71acd72e987907a682afc3369fc5e6120a72169e71acd72e987907a682af
linuxlinux>= 6a2968aaf50c7a22fced77a5e24aa636281efca8 < d2492688bb9fed6ab6e313682c387ae71a66ebaed2492688bb9fed6ab6e313682c387ae71a66ebae
linuxlinux_kernel
linuxlinux_kernel>= 0 < 5.10.249-15.10.249-1
linuxlinux_kernel>= 0 < 6.1.162-16.1.162-1
linuxlinux_kernel>= 0 < 6.12.69-16.12.69-1
linuxlinux_kernel>= 0 < 6.18.9-16.18.9-1
linuxlinux_kernel>= 3.2 < 5.10.2495.10.249
linuxlinux_kernel>= 5.11 < 5.15.1995.15.199
linuxlinux_kernel>= 5.16 < 6.1.1626.1.162
linuxlinux_kernel>= 6.13 < 6.18.96.18.9
linuxlinux_kernel>= 6.2 < 6.6.1236.6.123
linuxlinux_kernel>= 6.7 < 6.12.696.12.69
ubuntulinux
ubuntulinux-aws
ubuntulinux-aws-fips
ubuntulinux-azure
ubuntulinux-azure-5.15

CVSS provenance

nvdv3.14.7MEDIUMCVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
osv4.7MEDIUM
vendor_ubuntu7.8HIGH
vendor_debian4.7MEDIUM
vendor_redhat4.7MEDIUM
Stop checking back — get the weekly exploitation signal.

Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.