CVE-2026-31763Linux内核中的mpu3050陀螺仪驱动程序存在一个安全漏洞。该漏洞是由于在调用`free_irq()`函数释放中断资源时,使用了错误的变量参数导致的。驱动程序在注册中断处理程序时使用的是`mpu3050->trig`,但在释放中断时却错误地使用了`mpu3050`。这种参数不匹配会导致内核在清理过程中访问无效内存,进而引发系统崩溃或拒绝服务。
该漏洞位于Linux内核的`drivers/iio/gyro/mpu3050.c`驱动文件中。在Linux内核的中断处理机制中,`request_irq`函数用于注册中断,而`free_irq`用于释放中断。这两个函数必须使用相同的`dev_id`参数(通常是设备结构体指针)以确保内核能够正确识别和释放中断资源。在漏洞代码中,`free_irq`被调用时传入的是`mpu3050`指针,而此前注册中断时传入的却是`mpu3050->trig`。由于指针不匹配,内核无法正确执行释放操作,导致引用无效内存地址。当设备被移除或驱动卸载时,这将触发内核异常(Oops)或系统崩溃,造成本地拒绝服务。攻击者需要具备本地低权限即可触发该漏洞。