🇰🇷 한글 설명
Linux 커널의 dmaengine TI EDMA 드라이버에서 queue_priority_map 할당 시 메모리 크기가 잘못 계산되는 취약점이 발견되었습니다. 이로 인해 경계 외 메모리 쓰기(Out-of-bounds write)가 발생하여 ARM 플랫폼 기반 시스템에서 커널 크래시가 유발될 수 있습니다.
💡 쉬운 설명
컴퓨터의 핵심 부품인 메모리를 빌릴 때 필요한 양보다 너무 적게 빌려서, 넘치는 데이터를 엉뚱한 곳에 적어버리는 문제입니다. 이로 인해 시스템이 갑자기 멈추거나 오류가 발생하며 꺼질 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
dmaengine: ti: edma: Fix memory allocation size for queue_priority_map
Fix a critical memory allocation bug in edma_setup_from_hw() where
queue_priority_map was allocated with insufficient memory. The code
declared queue_priority_map as s8 (*)[2] (pointer to array of 2 s8),
but allocated memory using sizeof(s8) instead of the correct size.
This caused out-of-bounds memory writes when accessing:
queue_priority_map[i][0] = i;
queue_priority_map[i][1] = i;
The bug manifested as kernel crashes with "Oops - undefined instruction"
on ARM platforms (BeagleBoard-X15) during EDMA driver probe, as the
memory corruption triggered kernel hardening features on Clang.
Change the allocation to use sizeof(*queue_priority_map) which
automatically gets the correct size for the 2D array structure.
📍 영향받는 시스템
Linux kernel (TI EDMA driver 사용 시스템, 특히 ARM 기반 BeagleBoard-X15 등)
⚔️ 공격 벡터
로컬 공격자가 EDMA 드라이버를 초기화하는 과정을 통해 메모리 오염을 유발하여 커널 크래시를 일으킬 수 있음
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 보안 업데이트 버전인지 확인