IPBUF安全漏洞报告
English
CVE-2025-71143 CVSS 7.8 高危

CVE-2025-71143: Linux内核Samsung Exynos时钟驱动数组越界访问漏洞

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

漏洞信息

漏洞编号
CVE-2025-71143
漏洞类型
数组越界访问/缓冲区溢出
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel - Samsung Exynos Clock Driver (clk-exynos-clkout)

相关标签

CVE-2025-71143Linux KernelSamsung Exynos数组越界UBSAN时钟驱动初始化顺序__counted_by

漏洞概述

CVE-2025-71143是Linux内核中Samsung Exynos时钟驱动程序的一个高危安全漏洞。该漏洞源于exynos_clkout_probe()函数中结构体成员初始化顺序错误,具体表现为在访问.hws[]数组元素后才初始化.num成员。由于struct clk_hw_onecell_data的.hws成员被__counted_by注解标记,bounds sanitizer (UBSAN_BOUNDS)会在访问数组前检查.num值是否为0,从而触发数组越界访问警告。虽然这不会导致实际的内存损坏或安全漏洞,但UBSAN的误报会影响系统的稳定运行和调试过程。该漏洞影响所有使用Samsung Exynos芯片的Linux设备,包括移动设备、嵌入式系统和部分服务器。

技术细节

漏洞存在于drivers/clk/samsung/clk-exynos-clkout.c文件的第178行。在exynos_clkout_probe()函数中,代码首先访问.hws[]数组(如.hws[0]),然后才将数组大小赋值给.num成员。由于UBSAN_BOUNDS依赖.num值来验证数组访问的合法性,这种顺序颠倒导致每次访问都会触发越界警告。修复方法是将.num初始化语句移动到首次访问.hws[]之前,确保数组访问时.num已被正确设置。相关提交包括a317f63255ebc3dac378c79c5bff4f8d0561c290、cf33f0b7df13685234ccea7be7bfe316b60db4db和eb1f3a6ab3efee2b52361879cdc2dc6b11f499c0。

攻击链分析

STEP 1
1
攻击者识别运行Exynos芯片且启用UBSAN的Linux设备
STEP 2
2
通过设备树或内核模块加载触发exynos_clkout_probe()执行
STEP 3
3
在初始化序列中,.hws[]数组被访问时.num仍为0
STEP 4
4
UBSAN检测到数组越界访问,生成大量警告日志
STEP 5
5
系统日志膨胀,调试输出增加,可能影响系统性能和稳定性

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
代码审查显示exynos_clkout_probe()函数中存在初始化顺序问题。攻击者可通过构造特定设备树配置触发UBSAN报警,导致系统日志充斥警告信息,影响设备可用性。

影响范围

Linux Kernel (包含Samsung Exynos时钟驱动,支持UBSAN_BOUNDS)
受影响的提交范围: f316cdff8d67引入__counted_by注解后的版本

防御指南

临时缓解措施
在生产环境中,可通过在内核启动参数中添加ubsan_handle=0来临时禁用UBSAN报警,但建议尽快应用官方补丁更新内核。

参考链接

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