CVE-2026-68200 in Linux
Сводка
по VulDB • 10.08.2026
В ядре Linux устранена следующая уязвимость:
ALSA: таймер — не допускать повторного входа в обратный вызов (callback) экземпляра, который все еще выполняется.
Таймер, управляемый пользовательским пространством (utimer), вызывает ioctl TRIGGER напрямую через snd_timer_interrupt() без обеспечения сериализации; поэтому два потока, инициирующие один и тот же utimer, могут одновременно выполнять snd_timer_interrupt() для одного и того же объекта snd_timer.
Функция snd_timer_process_callbacks() снимает блокировку timer->lock вокруг каждого обратного вызова экземпляра и устанавливает бит SNDRV_TIMER_IFLG_CALLBACK, обозначающий выполняющийся в данный момент (in-flight) обратный вызов; функция snd_timer_close_locked() ожидает сброса этого бита для завершения выполнения текущего обратного вызова перед освобождением экземпляра. Один бит не может представлять два одновременных обратных вызова: когда второй прерывание повторно ставит экземпляр в очередь, чей обратный вызов все еще выполняется, оба вызываются одновременно; тот из них, который завершится первым, сбрасывает этот бит, а затем процедура закрытия (close-path) освобождает экземпляр (и его callback_data), пока другой обратный вызов все еще активен — это уязвимость типа use-after-free, доступная любому пользователю, способному открыть /dev/snd/timer, как через пользовательский экземпляр таймера, так и через очередь секвенсора, привязанную к utimer.
Функция snd_timer_interrupt() устанавливает флаг IFLG_CALLBACK перед снятием блокировки timer->lock, поэтому параллельное прерывание уже видит этот факт под защитой блокировки. Необходимо пропустить повторную постановку экземпляра (и его слейвов) в список ack/sack во время выполнения обратного вызова; накопленные значения pticks будут доставлены на следующем тике, поэтому события не теряются.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.