🇰🇷 한글 설명
Linux 커널의 ASoC SOF 토폴로지 파싱 과정에서 벤더 배열 크기를 검증하기 전에 데이터를 읽는 취약점이 발견되었습니다. 잘못된 토폴로지 데이터가 제공될 경우 배열 크기 필드를 잘못 읽을 수 있으며, 부호 있는 정수 비교 오류로 인해 음수 크기 값이 통과될 위험이 있습니다.
💡 쉬운 설명
리눅스 운영체제의 소리 관련 설정 파일을 읽을 때, 데이터가 중간에 끊겨 있거나 조작된 경우 시스템이 잘못된 정보를 읽어 오류를 일으킬 수 있는 문제입니다. 이를 통해 시스템의 안정성이 저해되거나 예상치 못한 동작이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
ASoC: SOF: topology: validate vendor array size before parsing
sof_parse_token_sets() reads array->size while iterating over topology
private data. The loop condition only checks that some data remains, so a
malformed topology with a truncated trailing vendor array can make the
parser read the size field before a full vendor-array header is available.
Validate that the remaining private data contains a complete
snd_soc_tplg_vendor_array header before reading array->size.
The declared array size check also needs to remain signed. asize is an int,
but sizeof(*array) has type size_t, so comparing them directly promotes
negative asize values to unsigned and lets them pass the check,
as reported in the stable review thread reference below.
Cast sizeof(*array) to int when validating the declared array size. This
rejects negative, zero and otherwise too-small sizes before the parser
dispatches to the tuple-specific code.
📍 영향받는 시스템
Linux kernel (ASoC SOF topology 관련 구성 요소 포함 버전)
⚔️ 공격 벡터
조작된(malformed) 사운드 토폴로지 파일을 시스템에 로드하여 메모리 읽기 오류 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 벤더 배열 크기 검증 로직을 적용해야 합니다.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인합니다.