CVE-2026-43175Linux内核中的clk: rs9驱动存在越界写入漏洞。9FGV0841芯片拥有8个输出端,需要注册8个struct clk_hw结构体,但驱动未预留足够的插槽空间。当驱动尝试设置索引4到7的指针时,会发生越界写入,破坏struct rs9_driver_data及其周围的数据。虽然这可能在运行时不会立即崩溃,但在驱动卸载或系统挂起时会导致内核崩溃。
该漏洞原理在于Linux内核驱动程序的数组边界检查缺失。在clk: rs9驱动代码中,定义的结构体`struct rs9_driver_data`包含一个用于存储时钟硬件指针的数组`.clk_dif`。该数组原本的大小设计不足,未考虑到9FGV0841芯片作为支持的最大芯片拥有8个输出的情况。当驱动初始化此类芯片时,会遍历所有输出并注册对应的`clk_hw`。在处理第4到第7个输出时,代码向`.clk_dif[4..7]`写入指针,由于数组越界,数据被写入了结构体后续的成员变量内存中。这导致内存数据静默损坏。攻击者只需具备本地低权限即可触发此逻辑。由于损坏的是内核核心数据结构,当后续发生驱动解绑或系统电源管理操作(如suspend)时,内核访问这些被破坏的指针或数据会导致严重错误,引发系统崩溃(Kernel Panic),从而实现拒绝服务攻击。