🇰🇷 한글 설명
Linux 커널의 amdgpu 드라이버에서 userq 검증 과정 중 drm_exec_fini() 함수가 중복 호출되는 취약점이 발견되었습니다. 특정 오류 발생 시 이미 해제된 객체를 다시 해제하려고 시도하여 시스템 불안정이나 메모리 손상을 초래할 수 있습니다.
💡 쉬운 설명
컴퓨터 그래픽 카드를 제어하는 소프트웨어에서 이미 사용이 끝난 메모리 자원을 실수로 두 번 삭제하려고 시도하는 오류입니다. 이로 인해 시스템이 갑자기 멈추거나 오류가 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: avoid double drm_exec_fini() in userq validate
When new_addition is true, amdgpu_userq_vm_validate() calls
drm_exec_fini(&exec) before iterating over the collected HMM ranges and
calling amdgpu_ttm_tt_get_user_pages().
If amdgpu_ttm_tt_get_user_pages() fails in that path, the code jumps to
unlock_all and calls drm_exec_fini(&exec) a second time on the same
exec object. drm_exec_fini() is not idempotent: it frees exec->objects
and may also drop exec->contended and finalize the ww acquire context.
Route that error path directly to the range cleanup once exec has
already been finalized.
Issue found using a prototype static analysis tool
and confirmed by code review.
(cherry picked from commit 2802952e4a07306da6ebe813ff1acacc5691851a)
📍 영향받는 시스템
Linux Kernel (amdgpu driver 포함 버전)
⚔️ 공격 벡터
로컬 공격자가 특정 조건의 메모리 관리 오류를 유도하여 시스템을 중단시키거나 메모리 손상을 유발할 수 있음
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 커널 버전을 확인하여 해당 취약점이 해결된 최신 패치 버전인지 확인하십시오.