-- CVE-2024-26817
我在 AMD KFD 中发现了一个安全漏洞,位于文件 drivers/gpu/drm/amd/amdkfd/kfd_chardev.c 中,ioctl 标识符为 AMDKFD_IOC_GET_PROCESS_APERTURES_NEW。
在函数 kfd_ioctl_get_process_apertures_new 中,用户提供的 args->num_of_nodes 数据会被进行乘法运算,然后直接传递给 kzalloc,这可能导致在某些平台上发生整数溢出。
这会分配一个较小的内存空间,并可能在同一个函数中紧随其后破坏堆。
在 Linux 内核中,已修复以下漏洞:
amdkfd: 使用 calloc 替代 kzalloc 以避免整数溢出
这里使用 calloc 代替了可能溢出的乘法运算。
Linux 内核 CVE 团队已将此问题分配为 CVE-2024-26817。
已修复于 4.19.312,提交 e6721ea845fc
已修复于 5.4.274,提交 8b0564704255
已修复于 5.10.215,提交 fcbd99b3c733
已修复于 5.15.155,提交 cbac7de1d990
已修复于 6.1.86,提交 e6768c6737f4
已修复于 6.6.27,提交 315eb3c2df7e
已修复于 6.8.6,提交 0c33d1115394
有关内核社区当前支持的内核版本的完整列表,请参见 https://www.kernel.org。
未受影响版本可能随时间变化,因为修复会向后移植到较旧的支持版本。官方 CVE 条目在 https://cve.org/CVERecord/?id=CVE-2024-26817 会随着修复的向后移植而更新,请查阅该页面以获取本问题的最新信息。
受此问题影响的文件为: drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
Linux 内核 CVE 团队建议您更新到最新的稳定内核版本,以修复此问题及许多其他错误。单个变更从未经过单独测试,而是作为更大内核版本的一部分。Linux 内核社区完全不建议也不支持单独挑选单个提交。然而,如果无法更新到最新版本,可以在以下提交中找到解决此问题的单个变更: https://git.kernel.org/stable/c/e6721ea845fcb93a764a92bd40f1afc0d6c69751 https://git.kernel.org/stable/c/8b0564704255c6b3c6a7188e86939f754e1577c0 https://git.kernel.org/stable/c/fcbd99b3c73309107e3be71f20dff9414df64f91 https://git.kernel.org/stable/c/cbac7de1d9901521e78cdc34e15451df3611f2ad https://git.kernel.org/stable/c/e6768c6737f4c02cba193a3339f0cc2907f0b86a https://git.kernel.org/stable/c/315eb3c2df7e4cb18e3eacfa18a53a46f2bf0ef7 https://git.kernel.org/stable/c/0c33d11153949310d76631d8f4a4736519eacd3a