🇰🇷 한글 설명
Linux 커널의 drm/xe/pt 구성 요소에서 xe_pt_zap_ptes_entry() 함수 호출 시 NULL 포인터 역참조가 발생하여 시스템이 충돌할 수 있는 취약점입니다. 페이지 테이블 탐색 과정에서 비어 있는 항목에 대해 NULL 자식 포인터가 전달될 때, NULL 체크 이전에 container_of()를 호출하여 잘못된 메모리 주소에 접근하는 것이 원인입니다.
💡 쉬운 설명
컴퓨터의 메모리 관리 시스템에서 존재하지 않는 주소를 참조하려고 시도하여 시스템이 갑자기 멈추거나 꺼질 수 있는 오류입니다. 데이터가 없는 빈 공간을 확인하기 전에 잘못된 계산을 수행하여 발생하는 문제입니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/xe/pt: Fix NULL pointer dereference in xe_pt_zap_ptes_entry()
The page-table walk framework may pass a NULL *child pointer for
unpopulated entries. xe_pt_zap_ptes_entry() called container_of(*child)
before checking for NULL, then dereferenced the result, causing a crash.
Move the container_of() call after a NULL guard, so the function returns
early instead of proceeding with an invalid pointer. XE_WARN_ON is kept
to help root cause the issue, but we now bail instead of crashing the
driver.
v2: Comment that triggering XE_WARN_ON is unexpected behavior (Matt Brost)
(cherry picked from commit b9297d19d9df5d4b6c994648570c5dcd1cac68ff)
📍 영향받는 시스템
Linux kernel (drm/xe/pt 드라이버를 사용하는 시스템)
⚔️ 공격 벡터
특정 조건에서 페이지 테이블을 조작하여 NULL 포인터를 유도함으로써 시스템 충돌(DoS) 유발 가능
🛡️ 대응 방법
커널 패치를 적용하여 xe_pt_zap_ptes_entry() 함수 내 NULL 가드 로직을 업데이트해야 함
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 해당 취약점이 수정된 패치 버전인지 확인합니다.