🇰🇷 한글 설명
리눅스 커널의 hdm_probe() 함수에서 장치 초기화가 완료되기 전에 put_device()를 호출하여 발생하는 취약점입니다. 초기화되지 않은 kobject에 대해 kref_put()이 호출됨으로써 커널 경고(WARN)가 발생하고 시스템 불안정을 초래할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품을 인식하는 과정에서 준비가 채 끝나기도 전에 부품을 해제하라는 명령이 내려져 오류가 발생하는 문제입니다. 이로 인해 시스템에 경고 메시지가 뜨거나 예기치 않은 동작이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
most: usb: hdm_probe: Fix calling put_device() before device initialization
The early error path in hdm_probe() can jump to err_free_mdev before
&mdev->dev has been initialized with device_initialize(). Calling
put_device(&mdev->dev) there triggers a device core WARN and ends up
invoking kref_put(&kobj->kref, kobject_release) on an uninitialized
kobject.
In this path the private struct was only kmalloc'ed and the intended
release is effectively kfree(mdev) anyway, so free it directly instead
of calling put_device() on an uninitialized device.
This removes the WARNING and fixes the pre-initialization error path.
📍 영향받는 시스템
hdm 드라이버를 사용하는 리눅스 커널 버전
⚔️ 공격 벡터
로컬 공격자가 특정 USB 장치를 연결하여 초기화 오류 경로를 유도함으로써 발생 가능
🛡️ 대응 방법
해당 취약점이 수정된 최신 리눅스 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전을 확인하여 취약점이 해결된 최신 패치 버전인지 확인