🇰🇷 한글 설명
Linux 커널의 DRM(Direct Rendering Manager) 구성 요소에서 drm_dev_register() 실패 시 발생하는 레이스 컨디션 취약점입니다. 장치 등록 중 일부 단계가 실패하더라도 사용자 공간에서 이미 열린 장치에 대해 ioctl 명령이 실행되어 리소스 해제 과정과 충돌할 수 있습니다.
💡 쉬운 설명
그래픽 장치를 준비하는 과정에서 오류가 발생했을 때, 시스템이 장치를 정리하는 도중 사용자가 장치를 조작하려고 시도하여 충돌이 발생하는 문제입니다. 이로 인해 시스템이 불안정해지거나 예기치 않은 동작이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm: fix race between partial drm_dev_register() failure and ioctl
If drm_dev_register() fails after registering a minor (e.g. render minor
registered, primary minor fails), userspace could have opened the first
minor and entered a drm_dev_enter() critical section. Since the
unplugged flag was never set, the ioctl proceeds while the error path
tears down device resources.
Fix this by introducing drm_dev_synchronize_unplug(), which sets the
unplugged flag and waits for the SRCU barrier, ensuring all in-flight
drm_dev_enter() critical sections complete before cleanup proceeds; call
it on the error path of drm_dev_register().
📍 영향받는 시스템
Linux Kernel (DRM subsystem 사용 시스템)
⚔️ 공격 벡터
로컬 사용자가 장치 등록 실패 시점에 특정 ioctl 명령을 호출하여 레이스 컨디션 유발
🛡️ 대응 방법
drm_dev_synchronize_unplug()가 포함된 최신 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 최신 보안 업데이트 버전인지 확인