🇰🇷 한글 설명
Linux 커널의 cx23885 미디어 드라이버에서 buffer_prepare()와 buffer_finish() 함수 호출 시 NULL 포인터 역참조 버그가 발견되었습니다. dma_alloc_coherent 호출이 실패하면 빈 버퍼가 생성되고, 이후 해제나 접근 시 커널 패닉이 발생할 수 있습니다. 수정으로 cx23885_risc_buffer() 반환값과 risc->cpu 값을 검사하도록 변경되었습니다.
💡 쉬운 설명
이 취약점은 Linux 커널의 TV 캡처 카드 드라이버에서 메모리 할당 실패를 제대로 확인하지 않아 발생합니다. 사용자 측 동작으로도 시스템이 비정상 종료될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: cx23885: Fix a null-ptr-deref bug in buffer_prepare() and buffer_finish()
When the driver calls cx23885_risc_buffer() to prepare the buffer, the
function call dma_alloc_coherent may fail, resulting in a empty buffer
risc->cpu. Later when we free the buffer or access the buffer, null ptr
deref is triggered.
This bug is similar to the following one:
https://git.linuxtv.org/media_stage.git/commit/?id=2b064d91440b33fba5b452f2d1b31f13ae911d71.
We believe the bug can be also dynamically triggered from user side.
Similarly, we fix this by checking the return value of cx23885_risc_buffer()
and the value of risc->cpu before buffer free.
📍 영향받는 시스템
cx23885 미디어 드라이버를 포함한 수정 이전의 Linux 커널 버전 (cx23885 칩셋 캡처 카드 사용 시)
⚔️ 공격 벡터
로컬 사용자가 미디어 장치를 반복적으로 조작하여 메모리 할당 실패를 유발하고, 이로 인한 NULL 포인터 역참조로 서비스 거부(커널 크래시)를 일으킬 수 있음
🛡️ 대응 방법
배포판 벤더가 제공하는 최신 커널 보안 업데이트를 적용하고 시스템을 재부팅하십시오.
🔧 검증 코드
cx23885 모듈이 출력되면 해당 드라이버가 로드된 상태이며, uname -r 결과의 커널 버전을 벤더의 수정 패치 버전과 비교해 패치 여부를 확인합니다.
lsmod | grep -E 'cx23885' 2>/dev/null; uname -r