🇰🇷 한글 설명
Linux 커널의 ALSA firewire-lib 라이브러리에서 apply_constraint_to_size() 함수의 step 변수가 0으로 초기화되었을 때 이를 검증하지 않고 나누기 연산을 수행하여 division by zero 취약점이 발생합니다. 로컬 공격자가 firewire 오디오 기기의 PCM 제약 조건을 조작하면 시스템 패닉을 유발할 수 있습니다.
💡 쉬운 설명
Linux 오디오 드라이버에서 숫자를 0으로 나누는 오류가 발생합니다. 로컬 사용자가 firewire 오디오 기기를 통해 이를 트리거하면 시스템이 중단될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: firewire-lib: Avoid division by zero in apply_constraint_to_size()
The step variable is initialized to zero. It is changed in the loop,
but if it's not changed it will remain zero. Add a variable check
before the division.
The observed behavior was introduced by commit 826b5de90c0b
("ALSA: firewire-lib: fix insufficient PCM rule for period/buffer size"),
and it is difficult to show that any of the interval parameters will
satisfy the snd_interval_test() condition with data from the
amdtp_rate_table[] table.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
📍 영향받는 시스템
Linux kernel 5.19 이상의 ALSA firewire-lib가 포함된 시스템 (firewire 오디오 인터페이스 사용 환경)
⚔️ 공격 벡터
로컬 공격자가 firewire 오디오 기기의 주기/버퍼 크기 PCM 규칙 파라미터를 조작하여 step 변수가 0으로 유지되도록 유도
🛡️ 대응 방법
Linux 커널을 취약점이 패치된 최신 버전으로 업데이트
🔧 검증 코드
커널 버전 확인 후 시스템 로그에서 division by zero 메시지가 있으면 취약점 트리거 여부 판단 가능합니다.
uname -r && dmesg | grep -i 'division by zero' | tail -5