🇰🇷 한글 설명
Linux 커널의 atomisp 미디어 드라이버에서 load_video_binaries() 함수의 메모리 할당 실패 시 yuv_scaler_binary 포인터가 NULL인 상태로 이후 unload_video_binaries()에서 역참조되어 시스템 크래시가 발생한다. 이는 메모리 관리 오류로 인한 로컬 거부 서비스(DoS) 취약점이다.
💡 쉬운 설명
리눅스 카메라 드라이버에서 메모리를 제대로 할당하지 못한 후 그 메모리에 접근하려고 하면서 시스템이 멈추는 버그입니다. 물리적 접근이 있는 사람이 악의적으로 트리거할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: atomisp: ssh_css: Fix a null-pointer dereference in load_video_binaries
The allocation failure of mycs->yuv_scaler_binary in load_video_binaries()
is followed with a dereference of mycs->yuv_scaler_binary after the
following call chain:
sh_css_pipe_load_binaries()
|-> load_video_binaries(mycs->yuv_scaler_binary == NULL)
|
|-> sh_css_pipe_unload_binaries()
|-> unload_video_binaries()
In unload_video_binaries(), it calls to ia_css_binary_unload with argument
&pipe->pipe_settings.video.yuv_scaler_binary[i], which refers to the
same memory slot as mycs->yuv_scaler_binary. Thus, a null-pointer
dereference is triggered.
📍 영향받는 시스템
Linux kernel 5.10 이상 atomisp 드라이버 탑재 시스템 (Intel Atom 프로세서 기반 임베디드/IoT 디바이스)
⚔️ 공격 벡터
로컬 접근 필요: 메모리 부족 상황 생성 또는 악의적 미디어 파일 처리를 통해 NULL 포인터 역참조 트리거
🛡️ 대응 방법
Linux 커널을 6.2 이상으로 업그레이드하거나 해당 패치(commit 후 버전)를 적용하세요.
🔧 검증 코드
atomisp 모듈 로드 여부와 커널 버전을 확인하고, dmesg 로그에서 관련 오류가 있는지 확인합니다. 모듈이 로드되고 오류가 발생했다면 취약한 상태입니다.
lsmod | grep atomisp && uname -r && dmesg | grep -i 'atomisp\|null pointer' | tail -5