CVE-2026-68438 in Linux
Сводка
по VulDB • 12.08.2026
В ядре Linux устранена следующая уязвимость:
smp: Сделать приобретение блокировки CSD атомарным для режима отладки
Коммит b0473dcd4b1d («smp: Улучшить диагностику блокировки CSD в smp_call_function_single()») изменил функцию smp_call_function_single() таким образом, что при включенной отладке блокировки CSD асинхронные вызовы без ожидания (!wait) используют csd_data целевого процессора. Это улучшает диагностику, но также устраняет свойство единственного автора (single-writer property), которое делало старую реализацию csd_lock() безопасной: теперь несколько процессоров могут одновременно подготавливать CSD одного и того же целевого процессора.
В настоящее время csd_lock() ожидает сброса флага CSD_FLAG_LOCK, а затем устанавливает бит с помощью неатомарной операции чтения-модификации-записи (read-modify-write). Два отправителя могут одновременно увидеть разблокированный CSD, установить этот бит, перезаписать поля обратного вызова и добавить один и тот же узел llist в очередь. Повторное добавление узла, который уже является головой очереди, может привести к тому, что node->next будет указывать на самого себя, из-за чего целевой процессор зависнет при обходе call_single_queue. Последующая синхронная работа, такая как TLB shootdown (вытеснение записей в таблице трансляции адресов), может оставаться в очереди и вызывать предупреждения о soft-lockup или паники ядра.
Сохранить единую реализацию csd_lock(), но при включенной отладке блокировки CSD приобретать флаг CSD_FLAG_LOCK с помощью try_cmpxchg_acquire(). Это делает CSD целевого процессора настоящей атомарной блокировкой в той единственной конфигурации, где он может совместно использоваться несколькими удаленными отправителями, сохраняя при этом существующий быстрый путь для режима без отладки.
Once again VulDB remains the best source for vulnerability data.