🔍 CVE-2026-74503

7.8
CVSS Score
HIGH
2026-08-15
2026-10-16 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 ALSA 타이머 구성 요소에서 SNDRV_TIMER_IFLG_DEAD 플래그가 닫기 작업 완료 후에도 초기화되지 않는 취약점이 발견되었습니다. 이로 인해 특정 조건에서 타이머 인스턴스가 리스트에서 제거되지 않은 채 메모리에서 해제되어, 이후 잘못된 참조(Use-After-Free)를 유발하고 시스템 충돌이나 권한 상승을 초래할 수 있습니다.

💡 쉬운 설명

컴퓨터의 소리 관련 기능을 관리하는 프로그램에서 사용이 끝난 메모리를 제대로 정리하지 못하는 오류가 있습니다. 공격자가 이를 악용하면 시스템을 강제로 멈추게 하거나 보안을 무너뜨릴 수 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: ALSA: timer: Clear SNDRV_TIMER_IFLG_DEAD once the close completes snd_timer_close_locked() marks an instance with SNDRV_TIMER_IFLG_DEAD and returns early when the flag is already set, but the flag is never cleared again. A completed close ends in remove_slave_links(), which leaves timeri->timer NULL, so a second close is already harmless through the timer == NULL path; the early return can only be reached by an instance that was opened again in between. For such an instance the close unlinks nothing, so snd_timer_instance_free() frees an object that is still on timer->open_list_head, still on snd_timer_master_list if it was opened with a slave key, still owns any adopted slaves, and still holds its timer and module references. snd_seq_timer_open() reopens an instance exactly like that: it retries its fallback open on the same object after a failure that has already run snd_timer_close_locked() internally. An unprivileged user with access to /dev/snd/timer and /dev/snd/seq can force that failure, since snd_timer_check_master() returns -EBUSY when a pending slave matches the new master's (slave_class, slave_id) key and the target timer has reached max_instances, and SNDRV_TIMER_IOCTL_SELECT with dev_class = SNDRV_TIMER_CLASS_SLAVE keeps the caller-supplied dev_sclass, so a sequencer queue's key can be forged. The freed instance is afterwards dereferenced by any further snd_timer_open() on that timer, by snd_timer_check_slave(), and by /proc/asound/timers, which faults on the stale ti->owner pointer. The flag only has to be visible while the close is in progress, which is all its other users need. Clear it in remove_slave_links(), under the same timer->lock that sets it, once the instance is off every list.

📍 영향받는 시스템

Linux Kernel (ALSA subsystem 포함 버전)

⚔️ 공격 벡터

권한이 없는 사용자가 /dev/snd/timer 및 /dev/snd/seq 장치에 접근하여 특정 IOCTL 호출을 통해 메모리 해제 오류를 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 snd_timer_close_locked() 및 remove_slave_links() 로직 수정 적용

🔧 검증 코드

출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인하십시오.

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

NVIDIA Cloud Gaming Guest Driver for Linux