CVE-2026-31690Linux内核中的THead固件协议驱动程序存在缓冲区溢出漏洞。该漏洞源于代码在TH1520 AON固件协议驱动中使用了不安全的指针算术运算来访问'mode'字段。静态分析工具Smatch警告存在缓冲区越界风险(buffer overflow 'data' 2 <= 3)。此外,驱动还使用了非标准的字节序转换宏。攻击者可利用此漏洞在本地提升权限或导致系统崩溃。
该漏洞位于Linux内核的`firmware: thead`驱动模块中,专门针对TH1520 SoC的AON(Always-On)固件协议。问题出在代码试图通过'resource'指针加上偏移量的方式访问'mode'字段,这种不安全的指针算术运算可能导致对缓冲区'data'的越界写入。具体表现为当偏移量计算或数据长度控制不当时,会覆盖相邻内存区域,触发缓冲区溢出。修复方案不仅修正了指针运算逻辑,还将自定义的RPC_SET_BE*和RPC_GET_BE*宏替换为标准的内核宏(如cpu_to_be16),以确保代码的可移植性。由于CVSS向量为AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H,攻击者仅需本地低权限即可利用此漏洞,可能导致内核崩溃(DoS)或本地权限提升(LPE)。