🇰🇷 한글 설명
Linux 커널의 ALSA fireworks 드라이버에서 발생한 취약점으로, Firewire 장치가 제공하는 상태 값이 정의된 문자열 배열의 범위를 벗어날 때 발생합니다. 특히 0x80000000과 같은 특정 상태 값이 입력될 경우 배열 인덱스 범위를 초과하여 잘못된 메모리 영역을 참조할 수 있습니다.
💡 쉬운 설명
장치가 보내는 상태 정보가 미리 정해진 목록보다 크거나 다를 경우, 컴퓨터가 엉뚱한 메모리 위치를 읽으려다 오류가 발생할 수 있는 문제입니다. 이를 통해 시스템이 불안정해지거나 예상치 못한 동작을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ALSA: fireworks: bound device-supplied status before string array lookup
The status field in an EFW response is a 32-bit value supplied by the
firewire device. efr_status_names[] has 17 entries so a status value
outside that range goes off into the weeds when looking at the %s value.
Even worse, the status could return EFR_STATUS_INCOMPLETE which is
0x80000000, and is obviously not in that array of potential strings.
Fix this up by properly bounding the index against the array size and
printing "unknown" if it's not recognized.
📍 영향받는 시스템
ALSA fireworks 드라이버를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
조작된 상태 값을 전송하는 악의적인 Firewire 장치를 연결하여 발생
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 해결된 패치 버전 이후인지 확인