🇰🇷 한글 설명
Linux 커널의 CXL 기능 처리 과정에서 출력 버퍼 크기보다 큰 피처 개수를 허용하여 발생하는 힙 기반의 OOB(Out-of-Bounds) 쓰기 취약점입니다. 사용자가 제어 가능한 값인 count가 버퍼 크기인 out_len을 검증하지 않고 쓰여지면서 메모리 오버플로우가 발생할 수 있습니다.
💡 쉬운 설명
컴퓨터의 메모리 공간을 계산할 때 실제 준비된 크기보다 더 많은 데이터를 넣으려고 시도하여 발생하는 오류입니다. 이로 인해 시스템의 중요한 데이터가 덮어씌워지거나 해킹의 통로가 될 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
cxl/features: Reject Get Feature count larger than the output buffer
cxlctl_get_feature() sizes its output buffer from the user's
fwctl_rpc.out_len, but the device is told to write
cxl_mbox_get_feat_in.count bytes into rpc_out->payload, which is a
separate user-controlled value. Nothing bounds count against out_len, so
a small out_len with a large count overflows the kvzalloc()'d buffer.
A heap OOB write reachable from FWCTL_RPC.
Reject requests where count exceeds the available payload room, before
allocating.
📍 영향받는 시스템
Linux Kernel (CXL 관련 모듈 사용 시스템)
⚔️ 공격 벡터
FWCTL_RPC를 통해 조작된 count 값을 전달하여 힙 메모리 오버플로우 유도
🛡️ 대응 방법
Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 수정된 패치 버전 이후인지 확인