🇰🇷 한글 설명
Linux 커널의 Intel Xe GPU 드라이버(drm/xe)에서 GGTT MMIO 접근 보호 불충분 취약점. 드라이버 로드 실패 시 drm_dev_unplug() 미호출로 인해 보호 메커니즘이 작동하지 않으며, 비동기 해제되는 메모리 객체로 인한 접근 오류 발생 가능.
💡 쉬운 설명
Intel 통합 GPU를 사용하는 리눅스 시스템에서 그래픽 드라이버가 메모리 접근을 제대로 보호하지 못하는 문제입니다. 드라이버가 비정상 종료되거나 로드 실패 시 보호 기능이 작동하지 않아 커널 오류나 메모리 손상이 발생할 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
drm/xe: Open-code GGTT MMIO access protection
GGTT MMIO access is currently protected by hotplug (drm_dev_enter),
which works correctly when the driver loads successfully and is later
unbound or unloaded. However, if driver load fails, this protection is
insufficient because drm_dev_unplug() is never called.
Additionally, devm release functions cannot guarantee that all BOs with
GGTT mappings are destroyed before the GGTT MMIO region is removed, as
some BOs may be freed asynchronously by worker threads.
To address this, introduce an open-coded flag, protected by the GGTT
lock, that guards GGTT MMIO access. The flag is cleared during the
dev_fini_ggtt devm release function to ensure MMIO access is disabled
once teardown begins.
(cherry picked from commit 4f3a998a173b4325c2efd90bdadc6ccd3ad9a431)
📍 영향받는 시스템
Linux kernel 5.10+ (Intel Xe 드라이버 탑재), Intel 통합 GPU 시스템
⚔️ 공격 벡터
드라이버 로드 실패 또는 비정상 종료 중 MMIO 메모리 접근으로 커널 패닉 또는 로컬 권한 상승
🛡️ 대응 방법
commit 4f3a998a173b4325c2efd90bdadc6ccd3ad9a431 패치 적용 또는 최신 안정 커널로 업데이트
🔧 검증 코드
커널 버전 확인 후 xe 드라이버 로그 표시. 드라이버 로그가 있으면 로드 상태 확인, 없으면 커널 버전을 공식 보안 권고와 비교하여 업데이트 필요 여부 판단
uname -r | grep -E '^[0-9]' && dmesg 2>/dev/null | grep -i 'drm/xe' | tail -1