🇰🇷 한글 설명
Linux 커널의 hid-oxp 드라이버에서 장치 제거 시 지연된 작업(delayed work)을 동기적으로 취소하지 않아 발생하는 취약점입니다. 이로 인해 장치가 이미 닫히거나 중지된 상태에서 작업 콜백이 실행되어 메모리 접근 오류나 시스템 불안정을 초래할 수 있습니다.
💡 쉬운 설명
장치를 컴퓨터에서 제거할 때 진행 중이던 작업이 완전히 끝날 때까지 기다리지 않고 바로 종료를 시도하는 문제입니다. 이 과정에서 이미 사라진 장치에 접근하려고 시도하여 시스템에 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
HID: hid-oxp: use cancel_delayed_work_sync() in remove
oxp_hid_remove() uses cancel_delayed_work() for all three delayed work
items. cancel_delayed_work() only dequeues a pending work item without
waiting for a currently executing callback to finish. If any of the
work callbacks (oxp_rgb_queue_fn, oxp_btn_queue_fn, oxp_mcu_init_fn) is
running at the time of removal, the callback continues executing
concurrently with hid_hw_close() and hid_hw_stop(), accessing the HID
device after it has been closed and stopped.
Use cancel_delayed_work_sync() instead to ensure that any in-progress
work callback completes before device teardown proceeds.
📍 영향받는 시스템
Linux kernel (hid-oxp 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
로컬 공격자가 장치 제거 프로세스를 유도하여 레이스 컨디션(Race Condition)을 발생시킴
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하여 cancel_delayed_work_sync()가 적용된 패치를 반영해야 합니다.
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인합니다.