
Posible desbordamiento de enteros que conduce a un desbordamiento de montón en AMD KFD.
Encontré una vulnerabilidad de seguridad en AMD KFD en el siguiente archivo drivers/gpu/drm/amd/amdkfd/kfd_chardev.c, el identificador de ioctl es AMDKFD_IOC_GET_PROCESS_APERTURES_NEW.
En la función kfd_ioctl_get_process_apertures_new, los datos proporcionados por el usuario de args->num_of_nodes se multiplican y se pasan directamente a kzalloc, lo que podría provocar un desbordamiento de enteros en algunas plataformas.
Eso asignaría un tamaño pequeño y potencialmente corrompería el heap justo después, en la misma función.
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad:
amdkfd: usar calloc en lugar de kzalloc para evitar el desbordamiento de enteros
Esto usa calloc en lugar de realizar la multiplicación, que podría desbordarse.
El equipo CVE del kernel de Linux ha asignado CVE-2024-26817 a este problema.
Corregido en 4.19.312 con el commit e6721ea845fc
Corregido en 5.4.274 con el commit 8b0564704255
Corregido en 5.10.215 con el commit fcbd99b3c733
Corregido en 5.15.155 con el commit cbac7de1d990
Corregido en 6.1.86 con el commit e6768c6737f4
Corregido en 6.6.27 con el commit 315eb3c2df7e
Corregido en 6.8.6 con el commit 0c33d1115394
Consulta https://www.kernel.org para obtener una lista completa de las versiones del kernel compatibles actualmente por la comunidad del kernel.
Las versiones no afectadas pueden cambiar con el tiempo a medida que los parches se retroportan a versiones anteriores compatibles del kernel. La entrada oficial de CVE en https://cve.org/CVERecord/?id=CVE-2024-26817 se actualizará si los parches se retroportan; consulta esa página para obtener la información más actualizada sobre este problema.
El/los archivo(s) afectado(s) por este problema son: drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
El equipo CVE del kernel de Linux recomienda que actualices a la última versión estable del kernel para esta y muchas otras correcciones de errores. Los cambios individuales nunca se prueban de forma aislada, sino como parte de una versión más amplia del kernel. La comunidad del kernel de Linux no recomienda ni respalda en absoluto hacer cherry-pick de commits individuales. Sin embargo, si actualizar a la última versión es imposible, los cambios individuales para resolver este problema se pueden encontrar en estos commits: 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