🔍 CVE-2022-49827

5.5
CVSS Score
MEDIUM
2025-05-01
2026-11-05 20:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 DRM(Direct Rendering Manager) 서브시스템에서 drm_vblank_init() 호출 중 drmm_add_action_or_reset()이 실패하면, worker가 NULL인 vblank에 대해 drm_vblank_init_release()가 직접 호출되어 kthread_destroy_worker()에서 널 포인터 역참조가 발생할 수 있습니다. 해당 커밋은 drm_vblank_destroy_worker() 호출 전에 NULL 검사를 추가하여 문제를 해결했습니다.

💡 쉬운 설명

리눅스 그래픽 드라이버의 초기화 실패 처리 과정에서 빈 값을 확인하지 않아 시스템이 비정상 종료될 수 있는 문제입니다. 커널에 NULL 검사를 추가하는 방식으로 수정되었습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: drm: Fix potential null-ptr-deref in drm_vblank_destroy_worker() drm_vblank_init() call drmm_add_action_or_reset() with drm_vblank_init_release() as action. If __drmm_add_action() failed, will directly call drm_vblank_init_release() with the vblank whose worker is NULL. As the resule, a null-ptr-deref will happen in kthread_destroy_worker(). Add the NULL check before calling drm_vblank_destroy_worker(). BUG: null-ptr-deref KASAN: null-ptr-deref in range [0x0000000000000068-0x000000000000006f] CPU: 5 PID: 961 Comm: modprobe Not tainted 6.0.0-11331-gd465bff130bf-dirty RIP: 0010:kthread_destroy_worker+0x25/0xb0 Call Trace: <TASK> drm_vblank_init_release+0x124/0x220 [drm] ? drm_crtc_vblank_restore+0x8b0/0x8b0 [drm] __drmm_add_action_or_reset+0x41/0x50 [drm] drm_vblank_init+0x282/0x310 [drm] vkms_init+0x35f/0x1000 [vkms] ? 0xffffffffc4508000 ? lock_is_held_type+0xd7/0x130 ? __kmem_cache_alloc_node+0x1c2/0x2b0 ? lock_is_held_type+0xd7/0x130 ? 0xffffffffc4508000 do_one_initcall+0xd0/0x4f0 ... do_syscall_64+0x35/0x80 entry_SYSCALL_64_after_hwframe+0x46/0xb0

📍 영향받는 시스템

패치 이전의 Linux 커널 (DRM vblank 코드 포함, 특히 vkms 등 가상 디스플레이 드라이버 사용 환경)

⚔️ 공격 벡터

로컬 사용자가 드라이버 초기화 실패를 유발하는 상황에서 커널 패닉 또는 서비스 거부 상태를 만들 수 있으며, 원격 공격 경로는 확인되지 않았습니다.

🛡️ 대응 방법

배포판 제공 최신 커널 패키지로 업데이트하거나, 해당 수정이 포함된 Linux 커널 버전으로 재부팅합니다.

🔧 검증 코드

출력된 커널 버전이 CVE 수정이 포함된 안정 버전(배포판 보안 공지 기준)보다 낮거나 같으면 취약할 수 있으며, 드라이버 모듈 목록은 DRM 관련 드라이버가 로드되어 있는지 확인하는 용도입니다.

Shell / Script
uname -r && (grep -i drm /proc/modules 2>/dev/null | head -5)

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel