🇰🇷 한글 설명
Linux 커널의 cxl/region 구성 요소에서 cxl_cancel_auto_attach() 함수 호출 시 경계 외 메모리 접근(Out-of-bounds access) 취약점이 발견되었습니다. cxl_calc_interleave_pos() 함수가 실패할 경우 cxled->pos 값이 음수 에러 코드로 설정되어, p->targets[] 배열에 잘못된 인덱스로 접근하게 됩니다.
💡 쉬운 설명
컴퓨터의 메모리 주소를 계산하는 과정에서 오류가 발생하여, 허용되지 않은 잘못된 메모리 영역을 건드리는 문제입니다. 이로 인해 시스템이 멈추거나 보안상 위험한 상황이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
cxl/region: Fix out-of-bounds access in cxl_cancel_auto_attach()
In cxl_cancel_auto_attach(), it assumes cxled->pos is a valid index for
accessing p->targets[]. However, cxled->pos can be set to negative errno
in cxl_region_sort_targets() if cxl_calc_interleave_pos() fails. This
causes the driver to use a negative index to access p->targets[],
resulting in out-of-bounds access.
Fix it by walking p->targets[] instead of using cxled->pos directly.
📍 영향받는 시스템
CXL(Compute Express Link) 기능을 사용하는 Linux 커널 버전
⚔️ 공격 벡터
CXL 장치의 자동 연결(auto-attach) 과정 중 특정 오류 상황을 유도하여 메모리 오염 유발
🛡️ 대응 방법
cxled->pos를 직접 사용하는 대신 p->targets[] 배열을 순회(walking)하도록 커널 패치 적용
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 최신 보안 패치 버전인지 확인합니다.