CVE-2026-31744Linux内核的能源模型(EM)组件中存在一个空指针解引用漏洞。该漏洞源于`dev_energymodel_nl_get_perf_domains_doit`函数在调用`em_perf_domain_get_by_id`获取性能域时,未对返回值进行NULL检查。当攻击者通过Netlink接口传递一个不存在的性能域ID时,函数返回NULL,随后`__em_nl_get_pd_size`函数尝试解引用该NULL指针访问`cpus`字段,导致内核崩溃或拒绝服务。
漏洞位于Linux内核的电源管理子系统。Netlink处理函数`dev_energymodel_nl_get_perf_domains_doit`用于处理用户空间请求获取性能域信息。该函数调用`em_perf_domain_get_by_id(id)`查找对应的结构体指针。代码逻辑缺少对返回指针的校验,直接将其传递给`__em_nl_get_pd_size()`。在`__em_nl_get_pd_size()`内部,代码执行了类似`pd->cpus`的操作(访问偏移0x30)。如果`id`无效导致`pd`为NULL,此操作将触发内核页错误,造成系统崩溃。攻击者需具备本地低权限(PR:L)即可触发此漏洞,无需用户交互。