🔍 CVE-2026-98512

7.1
CVSS Score
HIGH
2026-10-18
2026-10-24 14:16
✅ 완료

🇰🇷 한글 설명

Linux 커널의 Nouveau DRM 드라이버에서 스케줄러를 포함한 객체를 일반 kfree()로 해제하여, 해제 후에도 시그널된 fence가 참조하는 메모리에 접근하는 use-after-free 취약점입니다. 수정은 해당 객체를 kfree_rcu()로 해제하도록 변경하는 것입니다.

💡 쉬운 설명

그래픽 드라이버가 사용이 끝난 메모리를 너무 빨리 해제하여, 그 메모리를 여전히 참조하던 프로그램이 잘못된 데이터를 읽을 수 있습니다. 일반 사용자 권한으로도 이 문제를 유발할 수 있어 시스템 안정성이나 정보 노출 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: drm/nouveau: RCU-free the scheduler-containing nouveau_sched struct nouveau_sched embeds a struct drm_gpu_scheduler (base). nouveau_sched_destroy() calls nouveau_sched_fini() (which does drm_sched_fini(&sched->base)) and then frees the object with plain kfree(sched). drm_sched_fence_get_timeline_name() returns fence->sched->name, and the scheduler fence keeps a .release callback so it is not ops-detached on signalling. A finished fence exported to userspace via drm_syncobj / sync_file therefore keeps pointing at &sched->base after nouveau_sched_destroy(), and a later get_timeline_name() -- reachable unprivileged through SYNC_IOC_FILE_INFO -- dereferences freed memory (KASAN slab-use-after-free read). Per the dma-fence lifetime contract the exporter must keep the data backing a signalled fence alive for an RCU grace period. Free the scheduler-containing object with kfree_rcu() instead of kfree().

📍 영향받는 시스템

패치가 적용되지 않은 Nouveau 드라이버 포함 Linux 커널 (특정 수정 전 버전)

⚔️ 공격 벡터

로컬 사용자가 SYNC_IOC_FILE_INFO 등을 통해 해제된 fence의 타임라인 이름을 조회하여 메모리 오류를 유발

🛡️ 대응 방법

배포판에서 제공하는 Linux 커널 보안 업데이트를 적용하고 재부팅

🔧 검증 코드

출력된 커널 버전을 배포판 보안 공지의 패치된 버전과 비교하여, 같거나 더 높으면 수정된 것으로 판단합니다.

Shell / Script
uname -r

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Linux Kernel