🇰🇷 한글 설명
Linux 커널의 drm/mediatek 드라이버에서 mtk_crtc_destroy() 함수 호출 시 NULL 포인터 역참조가 발생할 수 있는 취약점입니다. mtk_crtc_create() 과정에서 채널 요청이 실패하여 특정 포인터가 NULL로 설정된 경우, 정리 과정에서 이를 확인하지 않고 함수를 호출하여 시스템 오류를 유발합니다.
💡 쉬운 설명
컴퓨터의 화면을 담당하는 부품(드라이버)이 작업을 정리하는 과정에서, 존재하지 않는 정보를 참조하려다 시스템이 멈추거나 오류가 발생하는 문제입니다. 특정 조건에서 메모리 주소를 잘못 읽어 발생하는 소프트웨어 결함입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/mediatek: Fix potential NULL dereference in mtk_crtc_destroy()
In mtk_crtc_create(), if the call to mbox_request_channel() fails then we
set the "mtk_crtc->cmdq_client.chan" pointer to NULL. In that situation,
we do not call cmdq_pkt_create().
During the cleanup, we need to check if the "mtk_crtc->cmdq_client.chan"
is NULL first before calling cmdq_pkt_destroy(). Calling
cmdq_pkt_destroy() is unnecessary if we didn't call cmdq_pkt_create() and
it will result in a NULL pointer dereference.
📍 영향받는 시스템
Linux kernel (MediaTek DRM driver 사용 시스템)
⚔️ 공격 벡터
로컬 공격자가 특정 하드웨어 초기화 실패 조건을 유도하여 커널 패닉(Kernel Panic)을 일으킬 수 있음
🛡️ 대응 방법
MediaTek DRM 드라이버의 NULL 포인터 체크 로직이 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 버전인지 확인