🔍 CVE-2022-50269

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

🇰🇷 한글 설명

Linux 커널의 DRM VKMS 드라이버에서 vkms_init() 함수가 vkms_create()의 반환값을 확인하지 않아, 생성 실패 시 앞서 할당한 config 메모리가 해제되지 않고 누수되는 문제입니다. 반환값을 검사하고 오류 발생 시 config를 해제하도록 수정되었습니다.

💡 쉬운 설명

가상 디스플레이 모듈을 설치하다 실패하면 사용하던 메모리가 반납되지 않고 남아 버립니다. 이 메모리 누수는 시간이 지나며 시스템 자원을 조금씩 소모하게 만듭니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: drm/vkms: Fix memory leak in vkms_init() A memory leak was reported after the vkms module install failed. unreferenced object 0xffff88810bc28520 (size 16): comm "modprobe", pid 9662, jiffies 4298009455 (age 42.590s) hex dump (first 16 bytes): 01 01 00 64 81 88 ff ff 00 00 dc 0a 81 88 ff ff ...d............ backtrace: [<00000000e7561ff8>] kmalloc_trace+0x27/0x60 [<000000000b1954a0>] 0xffffffffc45200a9 [<00000000abbf1da0>] do_one_initcall+0xd0/0x4f0 [<000000001505ee87>] do_init_module+0x1a4/0x680 [<00000000958079ad>] load_module+0x6249/0x7110 [<00000000117e4696>] __do_sys_finit_module+0x140/0x200 [<00000000f74b12d2>] do_syscall_64+0x35/0x80 [<000000008fc6fcde>] entry_SYSCALL_64_after_hwframe+0x46/0xb0 The reason is that the vkms_init() returns without checking the return value of vkms_create(), and if the vkms_create() failed, the config allocated at the beginning of vkms_init() is leaked. vkms_init() config = kmalloc(...) # config allocated ... return vkms_create() # vkms_create failed and config is leaked Fix this problem by checking return value of vkms_create() and free the config if error happened.

📍 영향받는 시스템

메모리 누수 수정이 적용되기 전의 Linux 커널 (VKMS 드라이버 포함 버전)

⚔️ 공격 벡터

로컬 사용자가 모듈 적재를 반복적으로 실패시켜 커널 메모리를 점진적으로 소모하게 만들 수 있으며, 주로 서비스 거부(DoS) 성격의 영향입니다.

🛡️ 대응 방법

Linux 커널을 해당 CVE 수정이 포함된 최신 안정 버전으로 업데이트하고 재부팅합니다.

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지 또는 커널 패치 목록과 대조해 수정 버전 이상인지 확인하고, vkms 모듈이 로드되지 않았다면 이 취약점에 노출되지 않은 것으로 볼 수 있습니다.

Shell / Script
uname -r && (lsmod | grep -i vkms || echo 'vkms 모듈 미로드')

📊 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