🇰🇷 한글 설명
Linux 커널의 CXL RAS 구성 요소에서 CPER 핸들러가 장치 유형을 잘못 판단하여 발생하는 취약점입니다. 특정 엔드포인트가 CXL Type-3 장치이거나 cxl_pci 드라이버에 바인딩되어 있다고 잘못 가정함으로써 시스템 충돌(Crash)을 유발할 수 있습니다.
💡 쉬운 설명
컴퓨터 부품이 어떤 종류인지 제대로 확인하지 않고 잘못된 방식으로 명령을 내려 시스템이 멈추거나 꺼질 수 있는 문제입니다. 장치 종류를 정확히 확인하는 과정을 추가하여 이 문제를 해결했습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
cxl/ras: Fix CPER handler device confusion
By inspection, cxl_cper_handle_prot_err() is making a series of fragile
assumptions that can lead to crashes:
1/ It assumes that endpoints identified in the record are a CXL-type-3
device, nothing guarantees that.
2/ It assumes that the device is bound to the cxl_pci driver, nothing
guarantees that.
3/ Minor, it holds the device lock over the switch-port tracing for no
reason as the trace is 100% generated from data in the record.
Correct those by checking that the PCIe endpoint parents a cxl_memdev
before assuming the format of the driver data, and move the lock to where
it is required. Consequently this also makes the implementation ready for
CXL accelerators that are not bound to cxl_pci.
📍 영향받는 시스템
CXL(Compute Express Link) 기능을 사용하는 Linux 커널 시스템
⚔️ 공격 벡터
특수하게 조작된 CPER(Common Platform Error Record) 데이터를 통해 커널의 잘못된 가정(Assumption)을 유도하여 시스템 충돌 유발
🛡️ 대응 방법
CXL 관련 패치가 적용된 최신 버전의 Linux 커널로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인