🇰🇷 한글 설명
Linux 커널의 ALSA seq 드라이버에서 bounce 페이로드에 확장 셀 포인터가 유출되는 취약점이 발견되었습니다. 권한이 없는 사용자가 특정 조건을 조작하여 커널 메모리 주소를 사용자 공간으로 노출시킬 수 있습니다.
💡 쉬운 설명
컴퓨터의 중요한 내부 주소가 외부로 새어나갈 수 있는 보안 결함입니다. 해커가 이 주소를 알게 되면 시스템의 다른 보안 장치를 무력화하는 데 악용할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: seq: Don't leak the extension cell pointer in the bounce payload
The bounce_error_event() embeds the failed event in the bounce payload
by pointing data.ext.ptr at it. When that event is a queued
variable-length event, its own data.ext.ptr holds the address of its
first extension cell, put there by snd_seq_event_dup(). The payload
goes out verbatim through snd_seq_expand_var_event(), so the address
reaches userspace.
That is the same address commit 705dd6dcbc0e ("ALSA: seq: Clear
variable event pointer on read") removed from the event header. The
read path still clears it there, just above the call that expands the
payload.
Embed a sanitised copy instead, treated exactly as snd_seq_read()
treats the header. A stack copy is enough because delivery is
synchronous and snd_seq_event_dup() copies before returning.
An unprivileged client reaches this by setting SNDRV_SEQ_FILTER_BOUNCE,
queueing a variable-length event to a port that does not exist and
reading the bounce back. Eight bytes on 64-bit, from its own pool.
📍 영향받는 시스템
Linux Kernel (ALSA seq 드라이버 포함 버전)
⚔️ 공격 벡터
권한이 없는 클라이언트가 SNDRV_SEQ_FILTER_BOUNCE를 설정하고 존재하지 않는 포트로 가변 길이 이벤트를 전송하여 bounce 페이로드를 읽음
🛡️ 대응 방법
ALSA seq 관련 패치가 적용된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 최신 보안 패치 버전인지 확인