🇰🇷 한글 설명
Linux 커널의 drm/xe/oa 드라이버 내 xe_oa_add_config_ioctl() 함수에서 Use-After-Free(UAF) 취약점이 발견되었습니다. metrics_lock을 해제한 후 oa_config->id에 접근하는 과정에서 레이스 컨디션이 발생하여, 공격자가 해당 메모리를 해제한 후 재사용할 수 있습니다.
💡 쉬운 설명
프로그램이 사용 중인 데이터가 갑자기 삭제되었음에도 불구하고 이를 계속 사용하려고 시도할 때 발생하는 보안 결함입니다. 공격자가 이 타이밍을 이용하면 시스템을 중단시키거나 권한을 탈취할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/xe/oa: Fix potential UAF in xe_oa_add_config_ioctl()
In xe_oa_add_config_ioctl(), we accessed oa_config->id after dropping
metrics_lock. Since this lock protects the lifetime of oa_config, an
attacker could guess the id and call xe_oa_remove_config_ioctl() with
perfect timing, freeing oa_config before we dereference it, leading to
a potential use-after-free.
Fix this by caching the id in a local variable while holding the lock.
v2: (Matt A)
- Dropped mutex_unlock(&oa->metrics_lock) ordering change from
xe_oa_remove_config_ioctl()
(cherry picked from commit 28aeaed130e8e587fd1b73b6d66ca41ccc5a1a31)
📍 영향받는 시스템
Linux Kernel (drm/xe/oa 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
특정 ioctl 호출을 정밀한 타이밍에 반복하여 메모리 해제와 접근 사이의 레이스 컨디션을 유도
🛡️ 대응 방법
커널 패치를 적용하여 lock을 유지한 상태에서 필요한 ID 값을 로컬 변수에 복사하도록 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인