🇰🇷 한글 설명
Linux 커널의 drm/msm/adreno 드라이버에서 GPU 장치 초기화가 완료되기 전에 msm_gpu->pdev가 할당되지 않아, msm_gpu_cleanup() 호출 시 NULL 포인터 역참조가 발생할 수 있습니다. 이 문제는 speedbin 설정 실패 등 여러 경로에서 발생하며, msm_gpu->pdev를 더 일찍 할당하여 해결합니다.
💡 쉬운 설명
Qualcomm Adreno 그래픽 칩을 제어하는 리눅스 드라이버가 준비되기 전에 정리 작업을 시도하다가 빈 값을 참조해 오류가 날 수 있는 문제입니다. 개발자는 장치 정보를 초기화 순서상 더 앞에서 설정하도록 수정했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/msm/adreno: Assign msm_gpu->pdev earlier to avoid nullptrs
There are some cases, such as the one uncovered by Commit 46d4efcccc68
("drm/msm/a6xx: Avoid a nullptr dereference when speedbin setting fails")
where
msm_gpu_cleanup() : platform_set_drvdata(gpu->pdev, NULL);
is called on gpu->pdev == NULL, as the GPU device has not been fully
initialized yet.
Turns out that there's more than just the aforementioned path that
causes this to happen (e.g. the case when there's speedbin data in the
catalog, but opp-supported-hw is missing in DT).
Assigning msm_gpu->pdev earlier seems like the least painful solution
to this, therefore do so.
Patchwork: https://patchwork.freedesktop.org/patch/602742/
📍 영향받는 시스템
Qualcomm Adreno GPU를 사용하는 Linux 커널 (수정 이전 MSM DRM 드라이버 탑재 버전, 주로 임베디드/모바일 Linux 기기)
⚔️ 공격 벡터
로컬 공격자가 장치 트리(DT) 구성이나 드라이버 초기화 경로를 조작해 NULL 역참조를 유발할 수 있으며, 주로 서비스 거부(커널 패닉) 형태로 나타납니다.
🛡️ 대응 방법
커널을 해당 CVE 수정이 포함된 최신 안정 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 커널 패치 목록과 비교해 CVE-2024-49901 수정이 포함된 버전인지 확인합니다. 해당 드라이버가 없는 시스템이라면 영향이 없습니다.