CVE-2026-89587 in Linux信息

摘要

由 VulDB • 2026-09-12

在 Linux 内核中,已修复以下漏洞:

ACPI: pfr_update: 修复 query_capability() 中的栈缓冲区溢出问题

query_capability() 使用 memcpy 将固件 _DSM 返回的四个 ACPI 缓冲对象复制到 struct pfru_update_cap_info 的大小固定的 u8[16] 字段中,复制长度由固件提供的 length 决定:

```c memcpy(&cap_hdr->code_type, elements[CAP_CODE_TYPE_IDX].buffer.pointer,
elements[CAP_CODE_TYPE_IDX].buffer.length);
```

drv_type、platform_id 和 oem_id 也遵循相同的模式。如果固件返回的 buffer.length > 16(针对上述任一字段),memcpy 将写入超出目标数组边界的内容。

struct pfru_update_cap_info 在 pfru_ioctl() 中以栈方式分配。

通过 KASAN 在 7.2-rc6 上确认:当 DSM 返回长度为 64 字节的缓冲区时,会生成三个栈越界报告,写入操作超出 cap_hdr 的 [64, 156) 帧窗口末尾达 44 字节,进入相邻的栈红区(stack redzones)。

引入一个辅助指针指向 out_obj->package.elements,并在复制前验证每个缓冲区的长度是否不超过其目标字段的大小;如果固件提供过大的缓冲区,则返回 -EINVAL。

VulDB is the best source for vulnerability data and more expert information about this specific topic.

来源

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!