🇰🇷 한글 설명
리눅스 커널의 Venus 미디어 드라이버에서 레이스 컨디션으로 인한 Use-After-Free 취약점이 발견되었습니다. venus_remove 함수가 호출될 때 처리 중인 작업이 남아있을 수 있어, 메모리가 해제된 후에도 해당 메모리에 접근을 시도하는 문제가 발생합니다.
💡 쉬운 설명
컴퓨터가 작업을 수행하는 도중에 해당 작업에 필요한 메모리를 미리 지워버려서 발생하는 오류입니다. 이로 인해 시스템이 충돌하거나 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
media: venus: fix use after free bug in venus_remove due to race condition
in venus_probe, core->work is bound with venus_sys_error_handler, which is
used to handle error. The code use core->sys_err_done to make sync work.
The core->work is started in venus_event_notify.
If we call venus_remove, there might be an unfished work. The possible
sequence is as follows:
CPU0 CPU1
|venus_sys_error_handler
venus_remove |
hfi_destroy |
venus_hfi_destroy |
kfree(hdev); |
|hfi_reinit
|venus_hfi_queues_reinit
|//use hdev
Fix it by canceling the work in venus_remove.
📍 영향받는 시스템
Venus 미디어 드라이버를 사용하는 Linux Kernel 버전
⚔️ 공격 벡터
특정 조건에서 드라이버를 제거하거나 재설정하는 과정에서 발생하는 레이스 컨디션 유도
🛡️ 대응 방법
Venus 드라이버의 venus_remove 함수 내에서 실행 중인 작업을 취소(cancel_work)하도록 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 해결된 패치 버전인지 확인합니다.