CVE-2026-31528Linux内核perf子系统存在安全漏洞。当group_sched_in()失败并尝试回滚时,x86_pmu_del()可能发生越界内存访问。该问题是由于inherit函数使用event->pmu而非pmu_ctx->pmu来克隆事件,导致在move_group场景下使用了错误的PMU事务处理程序。本地低权限攻击者利用此漏洞可能导致内核崩溃或权限提升。
该漏洞源于Linux内核perf子系统在处理事件组继承时的逻辑缺陷。具体来说,当组领导事件是软件事件时,事务回调处理使用了错误的PMU上下文。尽管perf_event_open()和group_sched_in()使用了pmu_ctx->pmu,但inherit函数在克隆事件时错误地使用了event->pmu,这实际上撤销了move_group的正确处理。这导致所有继承的计数器没有处于相同的pmu上下文中。当group_sched_in()失败触发回滚逻辑时,错误的PMU指针导致x86_pmu_del()访问越界内存。此外,__perf_event_read()在处理组情况时也存在类似问题。