🇰🇷 한글 설명
Linux 커널의 cx23885 미디어 드라이버에서 작업 항목이 완료되기 전에 상태 구조체가 해제되는 Use-After-Free 취약점이 발견되었습니다. 장치 제거 과정에서 대기 중인 워크큐 작업을 적절히 취소하지 않아 시스템 워크큐에서 실행 중인 작업이 해제된 메모리에 접근할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품을 제거하는 과정에서 아직 진행 중인 작업이 있는데, 그 작업이 사용하는 메모리를 먼저 지워버려 발생하는 오류입니다. 이로 인해 시스템이 갑자기 멈추거나 예상치 못한 동작을 할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: cx23885: cancel NetUP CI work before teardown
netup_ci_exit() frees a netup_ci_state while its work item,
netup_read_ci_status(), may still be pending or running on the system
workqueue. The worker obtains the state with container_of() and
dereferences it, so it must not outlive the state.
netup_ci_init() queues the initial status read, and CI GPIO interrupts
subsequently queue the same work from netup_ci_slot_status(). During
remove, cx23885_finidev() calls free_irq() before the CI device is
unregistered. free_irq() prevents further IRQ handlers from running,
but does not drain work queued previously, so the worker can run after
netup_ci_exit() frees the state.
Call cancel_work_sync() before dvb_ca_en50221_release() and kfree().
This issue was found by an in-house static analysis tool.
📍 영향받는 시스템
Linux kernel (media: cx23885 driver component)
⚔️ 공격 벡터
로컬 공격자가 특정 하드웨어 드라이버의 장치 제거 프로세스를 유도하여 메모리 오류를 일으킬 수 있음
🛡️ 대응 방법
커널 패치를 적용하여 장치 해제 전 cancel_work_sync()를 호출하도록 업데이트해야 함
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전인지 배포처의 보안 공지를 통해 확인하십시오.