IPBUF安全漏洞报告
English
CVE-2026-31545 CVSS 5.5 中危

CVE-2026-31545 Linux内核NFC驱动拒绝服务漏洞

披露日期: 2026-04-24
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2026-31545
漏洞类型
拒绝服务
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

Linux KernelNFCGPIO拒绝服务本地漏洞

漏洞概述

Linux内核中的nxp-nci驱动程序存在一个本地拒绝服务漏洞。该漏洞由于驱动程序未允许固件和启用GPIO进入睡眠状态,当驱动操作连接到I2C GPIO扩展器的GPIO时,会触发`WARN_ON`警告,并可能导致系统崩溃或功能失效。此问题主要影响系统可用性,攻击者需具备本地低权限即可触发该漏洞。

技术细节

该漏洞位于Linux内核的`drivers/nfc/nxp-nci`驱动中。根本原因在于GPIO操作上下文不当。在Linux内核中,访问I2C总线上的设备可能会引起进程睡眠。原驱动代码在调用`gpiod_set_value`修改GPIO状态时,未考虑到GPIO可能位于I2C扩展器上的情况,从而在原子上下文中执行了可能睡眠的操作。这违反了内核规则,触发了`gpiolib.c:3880`处的`WARN_ON`警告,导致系统日志报错并可能中断驱动服务。修复补丁通过修改代码逻辑,明确允许固件和启用GPIO进入睡眠状态,从而兼容I2C GPIO扩展器硬件。

攻击链分析

STEP 1
1. 获取访问权限
攻击者需要获取目标系统的本地低权限用户访问权限。
STEP 2
2. 触发驱动操作
攻击者加载或触发nxp-nci驱动程序,特别是当相关硬件GPIO连接在I2C扩展器上时。
STEP 3
3. 触发内核警告
驱动程序尝试在原子上下文中操作需要睡眠的GPIO,触发内核WARN_ON警告。
STEP 4
4. 导致拒绝服务
系统日志被污染,驱动程序功能可能中断,严重情况下导致系统不稳定或崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-31545 * Trigger: Loading the nxp-nci driver and operating GPIOs on an I2C expander. * Result: Kernel WARNING in dmesg. */ #include <linux/module.h> #include <linux/gpio/consumer.h> #include <linux/i2c.h> // Conceptual trigger simulation // In a real scenario, specific hardware interaction is required. static int __init poc_init(void) { // This simulates the condition where the driver attempts to set GPIO values // while the GPIO is on an I2C expander that requires sleeping. pr_info("CVE-2026-31545 PoC: Initializing NXP-NCI interaction...\n"); // Hypothetical call that would trigger the bug in vulnerable versions // gpiod_set_value(dev->firmware_gpio, 1); return 0; } static void __exit poc_exit(void) { pr_info("CVE-2026-31545 PoC: Exiting.\n"); } module_init(poc_init); module_exit(poc_exit); MODULE_LICENSE("GPL");

影响范围

Linux Kernel (主版本及稳定版本,具体修复补丁之前)

防御指南

临时缓解措施
如果无法立即升级内核,建议暂时禁用NXP-NCI驱动程序(通过内核启动参数blacklist)或避免使用连接到I2C GPIO扩展器的NFC硬件。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表