IPBUF安全漏洞报告
English
CVE-2025-71114 CVSS 5.5 中危

CVE-2025-71114 Linux kernel via_wdt 本地拒绝服务漏洞

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

漏洞信息

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

相关标签

Linux kernel拒绝服务本地攻击via_wdt资源管理watchdogx86内核驱动启动挂起

漏洞概述

CVE-2025-71114是Linux内核中VIA watchdog驱动的本地拒绝服务漏洞。该漏洞存在于drivers/watchdog/via_wdt.c文件中,源于allocate_resource()函数在分配MMIO内存区域时未正确设置资源名称。当资源未命名时,内核资源树在x86平台的/proc/iomem中会将该条目标记为<BAD>。在系统启动过程中,后续的资源查找和冲突检查无法正确处理这个无效条目,导致系统出现严重挂起。此漏洞为本地攻击,攻击者需要低权限即可触发,但影响的是系统启动阶段,可能导致设备无法正常启动。由于CVSS评分为5.5且可用性影响为高,该漏洞被评定为中危级别。建议相关用户及时更新内核补丁以修复此问题。

技术细节

漏洞根源在于drivers/watchdog/via_wdt.c中的allocate_resource()调用。当通过allocate_resource()为看门狗控制寄存器预留MMIO区域时,代码未调用request_mem_region或设置适当的资源名称属性。这导致内核的resource树结构中产生一个名为<BAD>的无效条目。在x86架构系统中,/proc/iomem会显示此异常条目。系统在启动阶段进行资源分配和冲突检测时,由于无法正确解析这个未命名的资源条目,导致资源查找逻辑失败,进而引发内核恐慌或系统挂起。攻击者可通过加载via_wdt驱动模块或触发相关硬件初始化路径来利用此漏洞。修复方案是在allocate_resource()后为分配的资源设置正确的.name字段,或改用request_mem_region()进行内存区域申请,并确保资源名称被正确初始化。

攻击链分析

STEP 1
步骤1
攻击者获得系统的低权限访问权限(本地用户身份)
STEP 2
步骤2
攻击者加载via_wdt内核模块或触发硬件初始化,调用allocate_resource()分配MMIO区域
STEP 3
步骤3
由于代码未设置资源名称,内核资源树创建名为<BAD>的无效条目到/proc/iomem
STEP 4
步骤4
系统启动过程中,后续的资源查找和冲突检查无法处理该无效条目
STEP 5
步骤5
内核资源管理逻辑失败,导致系统挂起或崩溃,形成拒绝服务

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-71114 PoC - Demonstrates the via_wdt resource allocation issue // This PoC shows how the unnamed resource causes issues in /proc/iomem #include <stdio.h> #include <stdlib.h> #include <string.h> /* * PoC for CVE-2025-71114 * * This vulnerability occurs in Linux kernel's via_wdt driver where * allocate_resource() is called without setting the resource name, * resulting in a <BAD> entry in /proc/iomem. * * To verify the vulnerability: * 1. Load the via_wdt kernel module * 2. Check /proc/iomem for <BAD> entries * 3. Observe potential boot hang on systems with this driver * * Root cause: Missing .name assignment in struct resource * * Example vulnerable code pattern: * * struct resource *res; * res = allocate_resource(&iomem_resource, ...); * // Missing: res->name = "via-wdt"; * * Fixed code: * struct resource *res; * res = allocate_resource(&iomem_resource, ...); * res->name = "via-wdt"; // Add this line */ int main() { printf("CVE-2025-71114 PoC\n"); printf("========================\n\n"); printf("Vulnerability: Linux kernel via_wdt unnamed resource allocation\n"); printf("Severity: MEDIUM (CVSS 5.5)\n"); printf("Impact: Local DoS (system boot hang)\n\n"); printf("Technical Details:\n"); printf("- Driver: drivers/watchdog/via_wdt.c\n"); printf("- Issue: allocate_resource() without setting .name\n"); printf("- Result: <BAD> entry in /proc/iomem\n"); printf("- Consequence: Resource lookup failure during boot\n\n"); printf("Verification Steps:\n"); printf("1. Check if via_wdt module exists: modinfo via_wdt\n"); printf("2. Load the module: modprobe via_wdt\n"); printf("3. Check iomem: cat /proc/iomem | grep -i bad\n"); printf("4. Check dmesg for resource allocation messages\n\n"); printf("Patch Reference:\n"); printf("https://git.kernel.org/stable/c/1d56025a3af50db0f3da2792f41eb9943eee5324\n"); return 0; }

影响范围

Linux kernel via_wdt driver (unspecified versions prior to patch)
x86 platforms with VIA hardware

防御指南

临时缓解措施
在官方补丁发布之前,可通过以下措施临时缓解:1) 在/etc/modprobe.d/目录下创建blacklist文件添加'blacklist via_wdt'禁用该驱动;2) 在grub引导参数中添加'via_wdt.disable=1'禁用看门狗功能;3) 如非必要,避免在受影响的x86平台上使用VIA硬件;4) 监控系统日志和dmesg输出,关注资源分配相关的错误信息。

参考链接

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