CVE-2026-74503 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 15.

리눅스 커널에서 다음 취약점이 해결되었습니다:

ALSA: 타이머: 닫기 작업이 완료되면 SNDRV_TIMER_IFLG_DEAD 플래그를 지웁니다.

snd_timer_close_locked()는 인스턴스에 SNDRV_TIMER_IFLG_DEAD 플래그를 설정하고 해당 플래그가 이미 설정되어 있는 경우 조기에 반환하지만, 이 플래그는 다시 지워지지 않습니다. 완료된 닫기 작업은 remove_slave_links()에서 종료되며, 이로 인해 timeri->timer이 NULL 상태가 됩니다. 따라서 두 번째 닫기 작업은 타이머 == NULL 경로로 인해 이미 무해합니다; 조기 반환 경로는 중간에 다시 열린 인스턴스에서만 도달할 수 있습니다. 이러한 인스턴스의 경우 닫기 작업은 아무것도 언링크하지 않으므로, snd_timer_instance_free()는 여전히 timer->open_list_head 위에 있고(슬레이브 키와 함께 열렸다면 여전히 snd_timer_master_list에도 있으며), 아직 채택된 슬레이브들을 소유하고 타이머 및 모듈 참조를 보유하고 있는 객체를 해제합니다.

snd_seq_timer_open()은 이와 정확히 같은 방식으로 인스턴스를 다시 엽니다: 이미 내부적으로 snd_timer_close_locked()가 실행되었던 실패 후 동일한 객체에서 폴백 열기를 재시도합니다. /dev/snd/timer 및 /dev/snd/seq에 접근 권한이 있는 비특권 사용자는 이 실패를 강제로 유발할 수 있습니다. 이는 pending 슬레이브가 새 마스터의 (slave_class, slave_id) 키와 일치하고 대상 타이머가 max_instances에 도달했을 때 snd_timer_check_master()가 -EBUSY를 반환하며, SNDRV_TIMER_IOCTL_SELECT에서 dev_class = SNDRV_TIMER_CLASS_SLAVE일 경우 호출자가 제공한 dev_sclass를 유지하므로 시퀀서 큐의 키를 위조할 수 있기 때문입니다. 해제된 인스턴스는 이후 해당 타이머에 대한 모든 snd_timer_open(), snd_timer_check_slave() 및 /proc/asound/timers에서 역참조되며, 이는 낡은 ti->owner 포인터로 인해 결함을 유발합니다.

이 플래그는 닫기 작업 진행 중에만 표시되면 되며, 다른 사용자들도 이를 필요로 합니다. 타이머가 모든 목록에서 제거된 시점에 해당 플래그를 설정하는 것과 동일한 timer->lock 하에 remove_slave_links()에서 이 플래그를 지웁니다.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

책임이 있는

Linux

예약하다

2026. 08. 15.

모더레이션

수락

항목

VDB-390803

EPSS

0.00000

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!