🇰🇷 한글 설명
Linux 커널의 uvcvideo 드라이버에서 GPIO 유닛 사용 중 드라이버 언바인드 시 발생하는 크래시 취약점입니다. USB 장치 대신 인터페이스 장치를 잘못 사용하여 정리 함수가 호출되지 않고 IRQ가 비활성화되지 않아, 메모리 접근 오류(OOPS)가 발생합니다.
💡 쉬운 설명
USB 카메라 장치를 연결 해제할 때 시스템이 제대로 정리 작업을 하지 못해 컴퓨터가 멈추거나 오류가 발생하는 문제입니다. 특정 하드웨어 기능을 사용하는 장치를 소프트웨어적으로 분리할 때 발생합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: uvcvideo: Fix crash during unbind if gpio unit is in use
We used the wrong device for the device managed functions. We used the
usb device, when we should be using the interface device.
If we unbind the driver from the usb interface, the cleanup functions
are never called. In our case, the IRQ is never disabled.
If an IRQ is triggered, it will try to access memory sections that are
already free, causing an OOPS.
We cannot use the function devm_request_threaded_irq here. The devm_*
clean functions may be called after the main structure is released by
uvc_delete.
Luckily this bug has small impact, as it is only affected by devices
with gpio units and the user has to unbind the device, a disconnect will
not trigger this error.
📍 영향받는 시스템
GPIO 유닛을 사용하는 USB 비디오 클래스(UVC) 장치가 연결된 Linux 커널 시스템
⚔️ 공격 벡터
사용자가 의도적으로 드라이버를 언바인드(Unbind)하는 로컬 동작을 통해 발생
🛡️ 대응 방법
해당 취약점이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 패치가 적용된 보안 업데이트 버전인지 확인