CVE-2025-71109CVE-2025-71109是Linux内核中MIPS架构ftrace(函数追踪)功能的一个中等严重性安全漏洞。该漏洞源于ftrace代码设计假设与实际实现之间的不匹配。具体来说,自commit e424054000878引入的UASM_i_LA_mostly宏可以生成超过2条指令,而ftrace代码假设最多生成2条指令,并将它们存储在固定大小的int[2]数组中。当内核代码位于32位地址空间以上时,该宏会生成额外的指令,导致缓冲区溢出。这种溢出破坏了__read_mostly部分中的变量,表现为__cpu_primary_thread_mask变量被损坏,最终导致系统在早期启动阶段挂起。攻击者可通过本地低权限访问触发此漏洞,造成可用性影响(系统拒绝服务)。该漏洞影响Linux内核的MIPS架构实现,需要内核位于32位以上地址空间才能触发。
该漏洞的根本原因是MIPS架构ftrace实现中的数组边界检查缺失。具体技术细节如下:1) UASM_i_LA_mostly宏用于生成加载地址指令,当处理32位以上地址时需要额外的指令序列;2) ftrace代码中的insn_la_mcount数组声明为int[2],仅预留2个元素空间;3) 当内核位于32位以上时,宏实际生成超过2条指令,导致写入越界;4) 被破坏的变量位于__read_mostly节区,包括__cpu_primary_thread_mask等关键数据结构;5) 该损坏导致早期启动过程中系统挂起。攻击条件:需要目标系统运行MIPS架构的Linux内核,且内核代码位于32位地址空间之外(高端内存配置)。利用方式属于本地触发,需要低权限用户权限。由于insn_la_mcount仅在代码位于内核代码段外时使用,动态ftrace功能仍可在受限范围内使用,但内存损坏风险依然存在。