🇰🇷 한글 설명
Linux 커널의 zoran 미디어 드라이버에서 video_device 구조체를 중복으로 해제하는 취약점이 발견되었습니다. 장치 해제 과정에서 video_unregister_device()가 이미 메모리를 해제했음에도 불구하고, zoran_exit_video_devices()가 동일한 메모리를 다시 kfree()하여 발생합니다.
💡 쉬운 설명
컴퓨터 부품을 정리할 때 이미 버린 물건을 한 번 더 버리려고 시도하여 시스템에 오류를 일으키는 문제입니다. 이 과정에서 시스템이 충돌하거나 보안상 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: zoran: Avoid freeing a registered video_device twice
zoran_init_video_device() installs zoran_vdev_release() as the
video_device release callback through zoran_template. After
video_register_device() succeeds, video_unregister_device() drops the
registered video_device reference and the V4L2 core eventually invokes
that release callback, which kfree()s the video_device.
zoran_exit_video_devices() called video_unregister_device() and then
kfree(zr->video_dev), so device teardown could free the same
video_device twice.
Remove the direct kfree() and clear the cached pointer after
unregistering. The pre-registration failure path keeps its manual free
because the video_device was not registered there.
This issue was found by a static analysis checker and confirmed by
manual source review.
📍 영향받는 시스템
zoran 드라이버를 사용하는 Linux 커널 버전
⚔️ 공격 벡터
로컬 공격자가 장치 드라이버의 해제 과정을 유도하여 메모리 오류를 발생시킴
🛡️ 대응 방법
커널 패치를 적용하여 중복 kfree()를 제거하고 포인터를 초기화해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 최신 패치 버전인지 확인