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

CVE-2026-43356 Linux内核adis组件空指针解引用漏洞

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

漏洞信息

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

相关标签

Linux KernelNULL Pointer DereferenceDoSLocalCVE-2026-43356IIO

漏洞概述

Linux内核中的IIO IMU ADIS驱动模块存在一个空指针解引用漏洞。该漏洞源于adis_init()函数在访问adis->ops成员之前未对其进行非空检查。当特定驱动(如adis16480)未设置自定义操作集并依赖默认值时,由于结构体被零初始化,会导致内核访问空地址。本地低权限攻击者可利用此漏洞触发系统崩溃,造成拒绝服务。

技术细节

漏洞位于Linux内核drivers/iio/imu/adis/adis.c的adis_init函数中。函数逻辑存在缺陷,直接解引用adis->ops指针以检查其内部的函数指针(write、read等),但未预先验证adis->ops本身是否有效。受影响的驱动程序(例如adis16480、adis16490、adis16545)在初始化时,devm_iio_device_alloc会将struct adis清零,若未显式赋值ops,adis->ops即为NULL。调用adis_init时,CPU尝试读取0x0地址指令,引发内核异常(Kernel Oops),导致系统宕机或重启。攻击向量为本地,无需用户交互,且仅需低权限即可触发。

攻击链分析

STEP 1
获取访问权限
攻击者获得本地系统的低权限用户访问权限。
STEP 2
触发驱动加载
通过插入特定硬件或加载受影响的内核模块(如adis16480),触发驱动程序的初始化流程。
STEP 3
执行漏洞代码
驱动初始化调用adis_init()函数,由于未检查ops指针,引发空指针解引用。
STEP 4
系统崩溃
内核发生异常,导致系统崩溃或重启,造成拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#include <stdio.h> #include <stdlib.h> // Conceptual PoC demonstrating the vulnerability logic struct adis_ops { int (*write)(void); int (*read)(void); }; struct adis { struct adis_ops *ops; }; // Simulating the vulnerable function in the kernel void vulnerable_adis_init(struct adis *adis) { // Vulnerability: Dereferencing adis->ops without checking if it is NULL if (adis->ops->write == NULL || adis->ops->read == NULL) { printf("Assigning default ops...\n"); } } int main() { // Simulating zero-initialized allocation (devm_iio_device_alloc) struct adis *my_adis = (struct adis *)calloc(1, sizeof(struct adis)); // ops is NULL here (0x0) printf("Triggering NULL pointer dereference...\n"); // This will crash (Segfault) mimicking the Kernel Panic/Oops vulnerable_adis_init(my_adis); free(my_adis); return 0; }

影响范围

Linux Kernel (根据Git补丁记录,受影响版本需参考具体commit 1a48f94c等修复版本)

防御指南

临时缓解措施
建议立即更新Linux内核至最新版本,以应用针对adis_init函数的空指针检查修复补丁。若无法立即升级,可限制对受影响硬件设备的访问权限或通过内核命令行参数禁用相关驱动模块以降低风险。

参考链接

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