🔍 CVE-2025-38355

5.5
CVSS Score
MEDIUM
2025-07-25
2026-11-05 21:18
✅ 완료

🇰🇷 한글 설명

Linux 커널 xe(Intel Xe) DRM 드라이버에서, 장치 초기화 실패 시 비동기 GGTT 노드 제거 작업이 MMIO/GSM 매핑 해제 이후에 실행되어 커널 페이지 폴트가 발생할 수 있는 문제입니다. 수정 사항은 MMIO/GSM 매핑을 해제하기 전에 대기 중인 워크큐 작업을 명시적으로 비우도록 managed-device 액션을 추가합니다.

💡 쉬운 설명

인텔 그래픽 드라이버가 장치 초기화에 실패하는 과정에서 정리 순서가 어긋나 시스템이 비정상 종료될 수 있는 결함입니다. 정리 작업을 올바른 순서로 마치도록 수정되었습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: drm/xe: Process deferred GGTT node removals on device unwind While we are indirectly draining our dedicated workqueue ggtt->wq that we use to complete asynchronous removal of some GGTT nodes, this happends as part of the managed-drm unwinding (ggtt_fini_early), which could be later then manage-device unwinding, where we could already unmap our MMIO/GMS mapping (mmio_fini). This was recently observed during unsuccessful VF initialization: [ ] xe 0000:00:02.1: probe with driver xe failed with error -62 [ ] xe 0000:00:02.1: DEVRES REL ffff88811e747340 __xe_bo_unpin_map_no_vm (16 bytes) [ ] xe 0000:00:02.1: DEVRES REL ffff88811e747540 __xe_bo_unpin_map_no_vm (16 bytes) [ ] xe 0000:00:02.1: DEVRES REL ffff88811e747240 __xe_bo_unpin_map_no_vm (16 bytes) [ ] xe 0000:00:02.1: DEVRES REL ffff88811e747040 tiles_fini (16 bytes) [ ] xe 0000:00:02.1: DEVRES REL ffff88811e746840 mmio_fini (16 bytes) [ ] xe 0000:00:02.1: DEVRES REL ffff88811e747f40 xe_bo_pinned_fini (16 bytes) [ ] xe 0000:00:02.1: DEVRES REL ffff88811e746b40 devm_drm_dev_init_release (16 bytes) [ ] xe 0000:00:02.1: [drm:drm_managed_release] drmres release begin [ ] xe 0000:00:02.1: [drm:drm_managed_release] REL ffff88810ef81640 __fini_relay (8 bytes) [ ] xe 0000:00:02.1: [drm:drm_managed_release] REL ffff88810ef80d40 guc_ct_fini (8 bytes) [ ] xe 0000:00:02.1: [drm:drm_managed_release] REL ffff88810ef80040 __drmm_mutex_release (8 bytes) [ ] xe 0000:00:02.1: [drm:drm_managed_release] REL ffff88810ef80140 ggtt_fini_early (8 bytes) and this was leading to: [ ] BUG: unable to handle page fault for address: ffffc900058162a0 [ ] #PF: supervisor write access in kernel mode [ ] #PF: error_code(0x0002) - not-present page [ ] Oops: Oops: 0002 [#1] SMP NOPTI [ ] Tainted: [W]=WARN [ ] Workqueue: xe-ggtt-wq ggtt_node_remove_work_func [xe] [ ] RIP: 0010:xe_ggtt_set_pte+0x6d/0x350 [xe] [ ] Call Trace: [ ] <TASK> [ ] xe_ggtt_clear+0xb0/0x270 [xe] [ ] ggtt_node_remove+0xbb/0x120 [xe] [ ] ggtt_node_remove_work_func+0x30/0x50 [xe] [ ] process_one_work+0x22b/0x6f0 [ ] worker_thread+0x1e8/0x3d Add managed-device action that will explicitly drain the workqueue with all pending node removals prior to releasing MMIO/GSM mapping. (cherry picked from commit 89d2835c3680ab1938e22ad81b1c9f8c686bd391)

📍 영향받는 시스템

Linux 커널 DRM xe 드라이버를 사용하는 Intel Xe 기반 GPU 시스템 (수정된 커널 버전 이전)

⚔️ 공격 벡터

로컬 사용자가 직접 공격하기 어려우며, 주로 가상 функ션(VF) 초기화 실패 시 발생하는 커널 크래시(서비스 거부) 위험이 있습니다.

🛡️ 대응 방법

커널을 CVE-2025-38355 수정이 포함된 최신 안정 버전 또는 배포판 보안 업데이트로 업그레이드하십시오.

🔧 검증 코드

출력된 커널 버전이 해당 배포판의 CVE-2025-38355 수정 커널 버전 이상이면 패치된 것이며, xe 모듈이 로드되지 않았다면 이 취약점의 영향을 받지 않습니다.

Shell / Script
uname -r && (dpkg -l linux-image-$(uname -r) 2>/dev/null || rpm -q kernel 2>/dev/null) && lsmod | grep -E '^xe\b' 2>/dev/null

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

💻 영향받는 소프트웨어

Linux Kernel