🔍 CVE-2022-50244

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

🇰🇷 한글 설명

Linux 커널의 cxl 드라이버에서 cxl_pci_init_afu/adapter() 함수 실행 중 device_register() 실패 시, 등록되지 않은 장치에 대해 device_unregister()를 호출하여 NULL 포인터 역참조가 발생할 수 있는 문제입니다. 해결책으로 device_del()과 put_device()로 분리하여 올바른 참조 해제 절차를 따르도록 수정되었습니다.

💡 쉬운 설명

장치 등록에 실패했을 때 존재하지 않는 장치를 제거하려다 시스템이 비정상 종료될 수 있는 오류입니다. 커널 패치로 올바른 정리 절차를 사용하도록 고쳐졌습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: cxl: fix possible null-ptr-deref in cxl_pci_init_afu|adapter() If device_register() fails in cxl_pci_afu|adapter(), the device is not added, device_unregister() can not be called in the error path, otherwise it will cause a null-ptr-deref because of removing not added device. As comment of device_register() says, it should use put_device() to give up the reference in the error path. So split device_unregister() into device_del() and put_device(), then goes to put dev when register fails.

📍 영향받는 시스템

CXL(Compute Express Link) 드라이버를 포함한 수정 이전의 Linux 커널 버전

⚔️ 공격 벡터

로컬 사용자가 장치 초기화 실패 상황을 유도해 커널 NULL 포인터 역참조로 서비스 거부(커널 패닉)를 일으킬 수 있음

🛡️ 대응 방법

패치가 포함된 최신 Linux 커널로 업데이트하거나 배포판의 보안 업데이트를 적용

🔧 검증 코드

커널 버전이 패치가 반영된 버전 이상인지 확인하고, cxl 모듈이 로드되지 않았다면 이 취약점의 영향을 받지 않는 것으로 판단합니다.

Shell / Script
uname -r && (grep -i cxl /proc/modules 2>/dev/null || echo 'cxl module not loaded')

📊 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