CVE-2026-89979 in Linux
요약
\~에 의해 VulDB • 2026. 09. 16.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ALSA: pcm: 비원자적 연산과 trigger-start 간 경쟁 조건(race condition) 수정
우리는 원자적(atomic) PCM 연산 간의 동시 상태 전이로 인한 경쟁 조건을 보호하지만, 비원자적 연산(hw_params, hw_free 및 prepare)과 원자적 연산 사이의 확인은 완벽하지 않습니다. hw_params 등 시작 부분에서 충돌하는 PCM 상태를 확인하지만, 비원자적 PCM 작업 중에도 원자적 PCM 연산이 여전히 발행될 수 있습니다. 이러한 상황의 예로는 스레드 A가 이미 준비된 스트림에 대해 PREPARE 또는 HW_PARAMS를 다시 발행하고, 다른 스레드 B가 prepare 작업 중간에 PCM 시작(trigger-start)을 트리거하는 경우가 있습니다. 이는 일반적으로 심각한 문제로 이어지지 않지만, syzkaller에서 보고한 것과 같은 불일치(예: ODEBUG 경고)를 유발할 수 있습니다.
다양한 원자적 PCM 연산이 있으며, 기본적으로 유일한 문제는 PREPARED 상태에서 작동하는 PCM 시작입니다. 다른 트리거 명령어(stop 등)는 실행 중이거나 기타 특수 상태에 대한 것이므로 사전 조건으로 필터링됩니다.
이 패치는 위의 문제를 해결하기 위해 비원자적 작업 동안 PCM trigger-start를 방지하는 것입니다. 다행히도 hw_params, hw_free 및 prepare 연산은 snd_pcm_buffer_access_lock()을 호출하며, 이를 사용하여 PCM 트리거 시 동시 작업을 확인할 수 있습니다. 이는 runtime->buffer_accessing을 음수(가능한 경우)로 설정하므로, PCM 트리거는 runtime->buffer_accessing 값만 확인하면 됩니다. 이 값이 음수라면 비원자적 PCM 연산이 동시에 실행 중임을 의미합니다.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.