Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-23167— nfc: nci: Fix race between rfkill and nci_unregister_device().

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于nci_unregister_device函数存在竞争条件,可能导致工作队列被销毁后仍被使用。

AI Predicted 4.4 Difficulty: Hard EPSS 0.10% · P1

Possible ATT&CK Techniques 1 AI

T1564.008 · Email Hiding Rules

Affected Version Matrix 16

VendorProduct Version RangeStatus
Linux Linux 6a2968aaf50c7a22fced77a5e24aa636281efca8< cd4412d5905ee580e96c48360dc98fcd9e6f3208 affected
6a2968aaf50c7a22fced77a5e24aa636281efca8< eaa5da5130deda26420273d4610cf6e4f794ed75 affected
6a2968aaf50c7a22fced77a5e24aa636281efca8< 8ea4d96419fb20f15a52ce657d49f1e7c91eb7ac affected
6a2968aaf50c7a22fced77a5e24aa636281efca8< 546eba0b10989de9ccc7fd619e874a30561e2b88 affected
6a2968aaf50c7a22fced77a5e24aa636281efca8< 126cd30cad37bc7c2c85fe2df2a522d4edf0a5c5 affected
6a2968aaf50c7a22fced77a5e24aa636281efca8< c3369fc5e6120a72169e71acd72e987907a682af affected
6a2968aaf50c7a22fced77a5e24aa636281efca8< d2492688bb9fed6ab6e313682c387ae71a66ebae affected
3.2 affected
… +8 more rows
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-23167

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
nfc: nci: Fix race between rfkill and nci_unregister_device().
Source: CVE Program / CVE List V5
Vulnerability Description
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.c:5187 Code: 18 00 4c 8b 74 24 08 75 27 90 e8 17 f2 fc 02 85 c0 74 1c 83 3d 50 e0 4e 0e 00 75 13 48 8d 3d 43 f7 51 0e 48 c7 c6 8b 3a de 8d <67> 48 0f b9 3a 90 31 c0 0f b6 98 c4 00 00 00 41 8b 45 20 25 ff 1f RSP: 0018:ffffc9000c767680 EFLAGS: 00010046 RAX: 0000000000000001 RBX: 0000000000040000 RCX: 0000000000080000 RDX: ffffc90013080000 RSI: ffffffff8dde3a8b RDI: ffffffff8ff24ca0 RBP: 0000000000000003 R08: ffffffff8fef35a3 R09: 1ffffffff1fde6b4 R10: dffffc0000000000 R11: fffffbfff1fde6b5 R12: 00000000000012a2 R13: ffff888030338ba8 R14: ffff888030338000 R15: ffff888030338b30 FS: 00007fa5995f66c0(0000) GS:ffff8881256f8000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f7e72f842d0 CR3: 00000000485a0000 CR4: 00000000003526f0 Call Trace: <TASK> lock_acquire+0x106/0x330 kernel/locking/lockdep.c:5868 touch_wq_lockdep_map+0xcb/0x180 kernel/workqueue.c:3940 __flush_workqueue+0x14b/0x14f0 kernel/workqueue.c:3982 nci_close_device+0x302/0x630 net/nfc/nci/core.c:567 nci_dev_down+0x3b/0x50 net/nfc/nci/core.c:639 nfc_dev_down+0x152/0x290 net/nfc/core.c:161 nfc_rfkill_set_block+0x2d/0x100 net/nfc/core.c:179 rfkill_set_block+0x1d2/0x440 net/rfkill/core.c:346 rfkill_fop_write+0x461/0x5a0 net/rfkill/core.c:1301 vfs_write+0x29a/0xb90 fs/read_write.c:684 ksys_write+0x150/0x270 fs/read_write.c:738 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fa59b39acb9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fa5995f6028 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fa59b615fa0 RCX: 00007fa59b39acb9 RDX: 0000000000000008 RSI: 0000200000000080 RDI: 0000000000000007 RBP: 00007fa59b408bf7 R08: ---truncated---
Source: CVE Program / CVE List V5
CVSS Information
N/A
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5
Vulnerability Title
Linux kernel 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于nci_unregister_device函数存在竞争条件,可能导致工作队列被销毁后仍被使用。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 6a2968aaf50c7a22fced77a5e24aa636281efca8 ~ cd4412d5905ee580e96c48360dc98fcd9e6f3208 -
Linux Linux 3.2 -

II. Public POCs for CVE-2026-23167

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-23167

请登录查看更多情报信息。

Same Patch Batch · Linux · 2026-02-14 · 108 CVEs total

CVE-2025-71202 8.8 HIGH iommu/sva: invalidate stale IOTLB entries for kernel address space
CVE-2026-23193 8.8 HIGH scsi: target: iscsi: Fix use-after-free in iscsit_dec_session_usage_count()
CVE-2026-23172 8.4 HIGH net: wwan: t7xx: fix potential skb->frags overflow in RX path
CVE-2026-23209 7.8 HIGH macvlan: fix error recovery in macvlan_common_newlink()
CVE-2025-71221 7.8 HIGH dmaengine: mmp_pdma: Fix race condition in mmp_pdma_residue()
CVE-2026-23178 7.8 HIGH HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()
CVE-2026-23184 7.8 HIGH binder: fix UAF in binder_netlink_report()
CVE-2026-23185 7.8 HIGH wifi: iwlwifi: mld: cancel mlo_scan_start_wk
CVE-2026-23171 7.8 HIGH bonding: fix use-after-free due to enslave fail after slave array update
CVE-2026-23169 7.8 HIGH mptcp: fix race in mptcp_pm_nl_flush_addrs_doit()
CVE-2026-23191 7.8 HIGH ALSA: aloop: Fix racy access at PCM trigger
CVE-2026-23192 7.8 HIGH linkwatch: use __dev_put() in callers to prevent UAF
CVE-2026-23198 7.8 HIGH KVM: Don't clobber irqfd routing type when deassigning irqfd
CVE-2026-23139 7.5 HIGH netfilter: nf_conncount: update last_gc only when GC has been performed
CVE-2026-23148 7.5 HIGH nvmet: fix race in nvmet_bio_done() leading to NULL pointer dereference
CVE-2026-23136 7.5 HIGH libceph: reset sparse-read state in osd_fault()
CVE-2025-71204 7.5 HIGH smb/server: fix refcount leak in parse_durable_handle_context()
CVE-2026-23161 7.3 HIGH mm/shmem, swap: fix race of truncate and swap entry split
CVE-2025-71201 7.1 HIGH netfs: Fix early read unlock of page with EOF in middle
CVE-2026-23204 7.1 HIGH net/sched: cls_u32: use skb_header_pointer_careful()

Showing top 20 of 108 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities

V. Comments for CVE-2026-23167

No comments yet


Leave a comment