🇰🇷 한글 설명
Linux 커널의 Panthor DRM 드라이버에서 사용자 공간이 요청한 큐 개수를 펌웨어가 실제로 초기화한 스트림 인터페이스 개수와 비교하지 않아 발생하는 취약점입니다. 펌웨어가 보고한 슬롯보다 많은 큐를 요청하면 초기화되지 않은 인터페이스에 접근하여 커널 크래시가 발생할 수 있습니다.
💡 쉬운 설명
그래픽 드라이버가 기기의 실제 처리 능력보다 많은 작업 통로를 요청받아도 이를 확인하지 않습니다. 이 때문에 권한이 낮은 사용자 프로그램이 시스템을 멈추게 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/panthor: validate userspace queue count against initialized firmware slot count
In panthor_drv.c:panthor_ioctl_group_create(),
the queue count is validated against the hardcoded maximum:
if (!args->queues.count || args->queues.count > MAX_CS_PER_CSG)
return -EINVAL;
However, if the firmware reports fewer slots than MAX_CS_PER_CSG,
panthor_fw_init_ifaces() will only initialize that smaller number of
stream interfaces.
If unprivileged userspace requests more queues than the firmware reported
(but no more than MAX_CS_PER_CSG), cs_slot_prog_locked() fetches an
uninitialized stream interface and may crash when dereferencing
cs_iface->input->ringbuf_base.
📍 영향받는 시스템
Linux 커널 Panthor DRM 드라이버를 사용하는 Arm Mali 기반 GPU 장치 (수정 전 커널 버전)
⚔️ 공격 벡터
권한이 없는 로컬 사용자가 Panthor 드라이버의 그룹 생성 ioctl에 펌웨어 슬롯 수를 초과하는 큐 개수를 전달하여 커널 크래시를 유발
🛡️ 대응 방법
커널을 해당 취약점 수정이 포함된 최신 안정 버전으로 업데이트하고 배포판의 보안 업데이트를 적용
🔧 검증 코드
출력된 커널 버전을 배포판 보안 공지 또는 Linux 커널 Git 저장소의 수정 커밋과 비교하여, 해당 패치가 포함된 버전 이상이면 수정된 것이고 이전 버전이면 취약할 수 있습니다.