[공격] 분석 — CVE-2026-23452
A race condition in the Linux kernel's runtime PM leads to a Use-After-Free (UAF), requiring local access and precise timing for exploitation, making it a low-probability but high-impact target for privilege escalation.
📋 요약
- 심각도 medium · CVSS 4.7 · EPSS 0.00091 · 악용난이도 hard
🔍 공격 기법
본 취약점은 pm_runtime_work() 함수에서 장치 제거 시 발생하는 Race Condition으로 인한 **Slab Use-After-Free (UAF)**이다.
-
공격 표면 및 트리거:
- 대상: Linux Kernel Runtime Power Management (PM) 서브시스템.
- 트리거:
pm_runtime_remove()가 호출되어 장치가 제거되는 시점과pm_runtime_work()가 부모 장치의 상태를 확인하는 시점이 겹쳐야 함. - 결함 지점:
dev->parent포인터를 참조하기 전, 해당 부모 장치가 이미 메모리에서 해제(freed)되었으나pm_runtime_work()는 이를 인지하지 못하고parent->power.lock에 접근하여lock_acquire시점에서 Crash 또는 제어권 획득 가능성이 발생함.
-
공격 체인 및 전제 조건:
- 초기 접근 (Local Access): CVSS 벡터
AV:L/PR:L에 따라 공격자는 이미 시스템에 로그인한 일반 사용자 권한을 가져야 함. - 정찰 및 트리거 준비:
blktest block/001사례처럼 장치의 빈번한 생성/제거를 유도할 수 있는 인터페이스(예: 가상 블록 장치 조작, Hot-plug 가능한 하드웨어 제어) 확보 필요. - Race Condition 유도 (Execution):
pm_runtime_remove()와pm_runtime_work()가 병렬로 실행되도록 타이밍을 맞춤 (AC:H- 공격 난이도 높음). - UAF 익스플로잇: 해제된 부모 장치의 메모리 영역(Slab)에 공격자가 제어하는 데이터를 재배치(Heap Spraying)하여,
spin_lock호출 시 임의 주소의 값을 읽거나 쓰도록 유도. - 권한 상승 (Privilege Escalation): 커널 공간에서의 임의 메모리 쓰기를 통해 프로세스의
cred구조체를 수정하여 Root 권한 획득.
- 초기 접근 (Local Access): CVSS 벡터
악용 가능성: 본 취약점은 Linux Kernel의 Power Management(PM) 하위 시스템 내 pm_runtime_work() 함수에서 발생하는 Race Condition으로, 공격 난이도는 매우 높습니다(Hard). AV:L 및 PR:L 조건에 따라 공격자는 이미 시스템에 로컬 계정 권한을 획득한 상태여야 하며, AC:H가 시사하듯 특정 타이밍에 dev->parent 포인터가 해제되는 순간을 정확히 맞춰야 하는 Use-After-Free(UAF) 특성을 가집니다. 공격 표면은 커널 내 디바이스 제거 및 전원 관리 워크큐와 연관된 내부 함수 호출 흐름이며, 특히 하드웨어 장치의 동적 제거/추가 과정에서 트리거됩니다. EPSS 수치가 0.00091로 매우 낮고 KEV에 등재되지 않은 점은 이 취약점이 일반적인 원격 공격 경로로 활용되기 어렵고, 실전에서 무기화된 사례가 드문 이론적 위험성에 가깝다는 것을 증명합니다. 결과적으로 단순한 Crash(DoS) 유발 가능성은 높으나, 이를 통해 권한 상승(LPE)으로 연결하기 위해서는 커널 메모리 레이아웃을 정밀하게 제어하는 추가적인 체이닝 기법이 필수적입니다.
💥 영향 분석
- 시스템 가용성 파괴: KASAN 리포트에서 확인되듯
BUG: KASAN: slab-use-after-free로 인한 커널 패닉(Kernel Panic) 및 시스템 다운(DoS). - 권한 상승: 추정: UAF를 통해 커널 메모리 제어권을 획득할 경우, 일반 사용자 권한에서 최고 관리자(Root) 권한으로 상승 가능.
🔗 관련 취약점·체이닝
본 결함은 단독으로는 AC:H(높은 복잡도)와 AV:L(로컬 접근) 제약으로 인해 즉각적인 위협이 낮으나, 다음과 같은 체이닝 경로가 추정됨:
- 메모리 레이아웃 정보 노출 $\rightarrow$ UAF $\rightarrow$ LPE:
추정: KASLR을 우회할 수 있는 다른 커널 정보 유출(Information Leak) 취약점과 결합될 경우, UAF를 통해 덮어쓸 정확한 메모리 주소를 계산할 수 있어 공격 성공률이 급격히 상승함. - 리소스 고갈 $\rightarrow$ Race Condition:
추정: 시스템 부하를 의도적으로 높여 스케줄링 지연을 유발함으로써,pm_runtime_work()와 제거 프로세스 간의 Race Window를 넓히는 기법과 체이닝될 수 있음.
🔎 탐지
- 커널 로그 모니터링:
dmesg또는/var/log/kern.log에서BUG: KASAN: slab-use-after-free in lock_acquire,pm_runtime_work관련 Call Trace 패턴 감시. - 비정상 종료 추적: 특정 장치 제거 작업 직후 발생하는 반복적인 커널 패닉 및 리부팅 현상 확인.
🛡️ 완화 방안
- 근본 해결: 영향받는 Linux Kernel 버전에 대해
pm_runtime_remove()내에flush_work()호출을 추가하는 최신 보안 패치 적용. - 즉시 조치:
- 불필요한 커널 모듈 로드 제한 및 일반 사용자의 하드웨어 제어/제거 권한 최소화.
- KASAN 등 메모리 디버깅 옵션이 활성화된 환경은 공격자에게 유용한 정보를 제공할 수 있으므로 운영 환경에서는 비활성화 확인.
[분석 근거] 본 리포트는 다중 소스에서 일관성이 확인된 데이터를 기반으로 작성되었다. 실측 EPSS 값(0.00091)과 AV:L/AC:H 벡터를 고려할 때 실제 악용 가능성은 매우 낮으며, 이에 따라 우선순위를 'monitor'로 결정하였다. 이는 이론적 심각도보다 실전 악용 난이도가 훨씬 높음을 의미한다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=4.7 · non-KEV · EPSS=0.00091 · exploit=hard · in_scope=None