
Потенциальное целочисленное переполнение, приводящее к переполнению кучи в AMD KFD.
-- 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.
Команда CVE ядра Linux присвоила этой проблеме идентификатор 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
Команда CVE ядра Linux рекомендует обновиться до последней стабильной версии ядра для исправления этой и многих других ошибок. Отдельные изменения никогда не тестируются изолированно, а являются частью общего релиза ядра. Выборочное применение отдельных коммитов (cherry-pick) не рекомендуется и не поддерживается сообществом ядра 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