CVE-2026-23330Linux内核NFC NCI层存在内存泄漏漏洞。在关闭NFC设备时,`nci_close_device()`未正确处理挂起的数据交换,导致回调函数持有的socket引用未被释放。攻击者可利用此漏洞导致内存泄漏,长期运行可能导致系统内存耗尽,引发拒绝服务。该漏洞需要本地低权限即可触发。
漏洞位于Linux内核net/nfc/nci/core.c的`nci_close_device()`函数中。当NFC设备关闭时,如果存在未完成的`nci_data_exchange`请求,其回调函数(如`rawsock_data_exchange_complete`)持有对socket的引用计数。原逻辑在关闭设备前未完成或取消这些挂起的请求,导致socket引用计数无法归零,进而导致通过`sk_alloc`分配的socket结构体及相关内存无法被释放。攻击者通过本地程序反复创建NFC socket、发起数据交换并触发设备关闭流程,可持续触发该泄漏,导致内核内存(特别是sock_inode_cache)耗尽,最终造成系统拒绝服务。