🇰🇷 한글 설명
Linux 커널의 drm/xe/hdcp 모듈에서 intel_hdcp_gsc_check_status() 함수가 media_gt 포인터에 대한 NULL 체크 없이 접근하여 페이지 폴트를 유발하는 취약점이 발견되었습니다. 이는 configfs를 통해 media GT가 비활성화된 경우 NULL 포인터가 dereference됨으로써 시스템 불안정을 초래합니다.
💡 쉬운 설명
시스템 설정에 따라 특정 그래픽 기능이 꺼져 있을 때, 운영체제가 잘못된 메모리 주소에 접근하여 충돌을 일으키는 문제입니다. 이 결함을 수정하면 시스템이 더 안정적으로 작동합니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/xe/hdcp: Add NULL check for media_gt in intel_hdcp_gsc_check_status()
When media GT is disabled via configfs, there is no allocation for
media_gt, which is kept as NULL. In such scenario,
intel_hdcp_gsc_check_status() results in a kernel pagefault error due to
>->uc.gsc being evaluated as an invalid memory address.
Fix that by introducing a NULL check on media_gt and bailing out early
if so.
While at it, also drop the NULL check for gsc, since it can't be NULL if
media_gt is not NULL.
v2:
- Get address for gsc only after checking that gt is not NULL.
(Shuicheng)
- Drop the NULL check for gsc. (Shuicheng)
v3:
- Add "Fixes" and "Cc: <stable...>" tags. (Matt)
(cherry picked from commit bfaf87e84ca3ca3f6e275f9ae56da47a8b55ffd1)
📍 영향받는 시스템
Linux kernel (drm/xe/hdcp 서브시스템)
⚔️ 공격 벡터
configfs를 통해 media GT를 비활성화하여 NULL 포인터 역참조 조건을 유도
🛡️ 대응 방법
커널 패치 적용 또는 최신 안정화 버전으로 업데이트하여 NULL 체크 로직 포함
🔧 검증 코드
명령어 실행 시 해당 함수가 존재하면 패치된 커널 모듈이 설치되었음을 의미하며, NULL 체크 코드가 포함되어 있는지 확인해야 합니다.
grep -r 'intel_hdcp_gsc_check_status' /lib/modules/$(uname -r)/build/drivers/gpu/drm/xe/ 2>/dev/null | head -n 1