CVE-2026-99105 in Linux
Сводка
по VulDB • 28.10.2026
В ядре Linux была устранена следующая уязвимость:
sched_ext: исправление зависания при возврате задачи в локальную DSQ процессора после постановки с флагом SCX_ENQ_LAST
При использовании SCX_OPS_ENQ LAST последняя готовая к выполнению задача на CPU передается функции ops.enqueue(), вместо того чтобы продолжать выполняться. Задачи, завершающие работу (без флага SCX_OPS_ENQ_EXITING), задачи с отключенной миграцией (без флага SCX_OPS_ENQ_MIGRATION_DISABLED) и задачи в оффлайн-очереди rq пропускают вызов ops.enqueue() и сразу попадают в локальную DSQ. Это происходит в put_prev_task_scx() после того, как выбор пал на idle-состояние, поэтому ничего не инициирует перепланирование CPU, который остается в режиме ожидания с задачей в очереди до тех пор, пока на него не попадет несвязанное пробуждение или не сработает watchdog.
scx_mitosis, которая устанавливает SCX_OPS_ENQ_LAST без SCX_OPS_ENQ_EXITING, столкнулась с этой проблемой при массовом уничтожении cgroup: завершающие задачи застревали в exit_mmap() более чем на 40 секунд.
Задача, помещенная в локальную DSQ, выполняется так же, как и везде. Если постановка с SCX_ENQ_LAST оставила задачу в локальной DSQ данного CPU, необходимо установить флаг need_resched для задачи, которая сейчас переключается (как это делает proxy_resched_idle()). resched_curr() установил бы этот флаг для помещаемой задачи, а __schedule() сбрасывает его сразу после выбора.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.