Уязвимость CVE-2026-64560 в ядре Linux: риск UAF при exec()
Критическая уязвимость (CVSS 7.8) обнаружена в подсистеме posix-cpu-timers ядра Linux. Ошибка приводит к use-after-free (UAF) при гонке между удалением таймера и вызовом exec() в неосновном потоке процесса. Эксплуатация может привести к локальному повышению привилегий или отказу в обслуживании.
Подробности
Уязвимость присутствует во всех версиях ядра Linux, начиная с ранних реализаций POSIX CPU-таймеров (около 2010 года), когда был внедрен механизм работы с группой задач. Проблема возникает в следующих сценариях: - В функции `sys_timer_delete()` при обработке таймера, адресованного группе задач (TGID), если в момент удаления происходит не-leader exec(). - В `posix_cpu_timer_set()` — аналогичная гонка вызывает transient error или UAF для таймеров, размещенных на стеке (например, в `do_cpu_nanosleep()`). - В `posix_cpu_timer_rearm()` — таймер может перестать срабатывать. Причина — некорректная синхронизация памяти между операциями в `__exit_signal()` и `lock_task_sighand()`. На слабо упорядоченных архитектурах чтение поля `sighand == NULL` не гарантирует видимость предыдущих записей, включая удаление задачи из таблицы PID. Проблема оценена как 7.8 по шкале CVSS (HIGH). Для эксплуатации требуется локальный доступ к системе.Что делать
Разработчики ядра подготовили патч, который решает проблему комплексно: 1. Замена обычной записи в `__exit_signal()` на `smp_store_release()` для обеспечения корректного порядка операций. 2. Добавление барьера `smp_acquire__after_ctrl_dep()` в обработчик случая `sighand == NULL`. 3. Создание новой вспомогательной функции для поиска задачи и блокировки sighand с повторной попыткой при обнаружении NULL. 4. Использование этой функции во всех затронутых операциях: `sys_timer_delete()`, `posix_cpu_timer_set()`, `posix_cpu_timer_rearm()`. Рекомендуется: - **Немедленно** обновить ядро до версии, содержащей исправление, если ваш дистрибутив уже выпустил обновление безопасности. - Для систем, где обновление невозможно, временным митигацией может служить ограничение использования POSIX CPU-таймеров в контейнерах и изолированных средах, хотя полной защиты это не гарантирует. - Рекомендуется отслеживать уведомления вашего вендора дистрибутива (Ubuntu, Debian, RHEL, SUSE и др.) о выпуске исправлений для CVE-2026-64560.Итог
CVE-2026-64560 — это серьезная ошибка в управлении памятью ядра, существующая более десяти лет. Хотя для успешной эксплуатации требуется выполнение специфических условий (не-leader exec() в момент работы с таймером), потенциальное влияние включает повышение привилегий до уровня root. Обновление ядра — единственный надежный способ устранения уязвимости.Источник: CVE Project (cvelistV5)
