CVE-2026-68200 in Linux
요약
\~에 의해 VulDB • 2026. 08. 11.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ALSA: 타이머: 아직 실행 중인 인스턴스 콜백으로 재진입하지 않음
사용자 공간 기반 타이머(utimer)의 TRIGGER ioctl은 직렬화 없이 `snd_timer_interrupt()`를 직접 호출하므로, 동일한 utimer를 트리거하는 두 스레드가 하나의 `snd_timer`에서 동시에 `snd_timer_interrupt()`를 실행할 수 있습니다.
`snd_timer_process_callbacks()`는 각 인스턴스 콜백 주변에서 타이머 잠금(`timer->lock`)을 해제하고, 진행 중인 콜백에 단일 플래그인 `SNDRV_TIMER_IFLG_CALLBACK` 비트를 설정합니다. `snd_timer_close_locked()`은 인스턴스를 해제하기 전에 진행 중인 콜백이 완료될 때까지 이 비트를 기다립니다(드레인). 해당 비트는 두 개의 동시 콜백을 표현할 수 없습니다: 두 번째 인터럽트가 아직 실행 중인 콜백이 있는 인스턴스를 다시 큐에 넣으면, 둘 다 동시에 실행되고 먼저 종료된 쪽이 비트를 지우며, 닫기 경로에서의 드레인은 다른 콜백이 여전히 활성 상태인 동안 해당 인스턴스(및 `callback_data`)를 해제합니다. 이는 `/dev/snd/timer`를 열 수 있는 모든 사용자가 접근 가능한 Use-After-Free 취약점이며, 사용자 타이머 인스턴스를 통해 또는 utimer에 바인딩된 시퀀서 큐 타이머를 통해서도 발생할 수 있습니다.
`snd_timer_interrupt()`는 타이머 잠금을 해제하기 전에 `IFLG_CALLBACK`을 설정하므로, 동시 인터럽트는 이미 잠금 하에서 이를 관찰합니다. 콜백이 진행 중인 동안 해당 인스턴스(및 슬레이브)를 ack/sack 목록으로 다시 큐에 넣지 않도록 합니다. 누적된 pticks는 다음 틱 시점에 전달되므로 이벤트가 손실되지 않습니다.
If you want to get best quality of vulnerability data, you may have to visit VulDB.