CVE-2025-71143CVE-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。