[방어] 분석 — CVE-2026-23452
A local race condition in the Linux kernel's power management leads to a Use-After-Free (UAF) vulnerability, requiring immediate monitoring of kernel panic logs and prompt patching of affected versions.
📋 요약
- 심각도 medium · CVSS 4.7 · EPSS 0.00091 · 악용난이도 hard
🔍 공격 기법
본 취약점은 pm_runtime_work() 함수 내에서 디바이스 제거 시 발생하는 Race Condition을 이용합니다.
- 경로: 로컬 권한의 사용자가 특정 디바이스를 빈번하게 제거/추가하거나 전원 관리 상태를 조작하여 타이밍 윈도우를 생성합니다.
- 원리:
pm_runtime_remove()가 호출되어 부모 디바이스(parent)가 메모리에서 해제되었음에도 불구하고, 이미 큐에 적재된pm_runtime_work()작업이 실행되면서 해제된dev->parent포인터를 역참조(Dereference)합니다. - 단계: [디바이스 제거 요청] $\rightarrow$ [부모 객체 Free] $\rightarrow$ [Workqueue 내 pm_runtime_work 실행] $\rightarrow$ [해제된 메모리 영역의
power.lock접근] $\rightarrow$ [Slab-Use-After-Free 발생].
악용 가능성: 본 취약점의 공격 난이도는 매우 높으며(Hard), 실제 악용 가능성은 현재로서 극히 낮습니다. CVSS 벡터상 AV:L 및 AC:H인 점은 공격자가 이미 시스템에 로컬 권한(PR:L)을 획득한 상태여야 하며, 특정 Race Condition이라는 정밀한 타이밍 제어가 필요함을 의미합니다. 특히 EPSS=0.00091의 매우 낮은 수치와 KEV 미등재 사실은 이론적인 취약점일 뿐 실제 야생(In-the-wild)에서 공격에 활용된 사례가 거의 없음을 방증합니다. 공격 표면은 Linux Kernel의 Power Management(pm_runtime) 서브시스템 내 dev->parent 포인터 참조 로직이며, 장치 제거 시 발생하는 비동기 작업 큐의 처리 순서가 트리거 조건이 됩니다. 결과적으로 공격자가 커널 메모리 상의 Use-After-Free(UAF)를 유도하기 위해서는 하드웨어 장치의 빈번한 탈착이나 드라이버 수준의 정밀한 조작이 선행되어야 하므로, 일반적인 사용자 레벨에서의 악용 가능성은 매우 제한적입니다.
💥 영향 분석
- 가용성 저하: 가장 직접적인 영향은 커널 패닉(Kernel Panic)으로 인한 시스템 크래시 및 서비스 중단입니다.
- 권한 상승(LPE): 추정: 단순 Crash를 넘어, Slab/Slub Allocator의 레이아웃을 정밀하게 조작하여 해제된 메모리 영역에 공격자가 제어하는 데이터를 배치(Heap Spraying)할 경우, 커널 모드에서의 임의 코드 실행 및 권한 상승으로 이어질 가능성이 존재합니다.
🔗 관련 취약점·체이닝
- 유형: Use-After-Free (UAF) / Race Condition.
- 체이닝 가능성: 컨테이너 환경에서 호스트 커널의 전원 관리 인터페이스에 접근 가능한 경우, Container Escape 경로로 활용될 수 있습니다.
🔎 탐지
본 취약점은 공격 시도가 성공하거나 실패할 때 커널 로그에 명확한 흔적을 남깁니다.
1. 핵심 탐지 지표
- 로그 위치:
/var/log/syslog,/var/log/kern.log또는dmesg출력물. - 핵심 패턴:
BUG: KASAN: slab-use-after-free,pm_runtime_work,lock_acquire.
2. 탐지 규칙 예시 (SIEM 의사코드)
1SELECT timestamp, hostname, message 2FROM kernel_logs 3WHERE (message LIKE '%slab-use-after-free%' OR message LIKE '%KASAN%') 4 AND message LIKE '%pm_runtime_work%' 5 AND message LIKE '%lock_acquire%' 6-- 임계값: 동일 호스트에서 5분 내 3회 이상 발생 시 '심각' 알람 (Race Condition의 특성상 간헐적/반복적 발생)3. 정규식 기반 탐지 패턴
/(BUG: KASAN: slab-use-after-free in lock_acquire.*pm_runtime_work)/
4. 오탐 튜닝 및 주의사항
- 오탐 시나리오: 개발/테스트 환경에서
KASAN(Kernel Address Sanitizer)이 활성화된 상태로 드라이버 테스트를 수행할 때 유사한 로그가 발생할 수 있습니다. - 튜닝 방법: 프로덕션 서버에서는 기본적으로 KASAN이 비활성화되어 있으므로, KASAN 로그가 찍힌다면 이는 매우 이례적인 상황입니다. 다만, 일반
Kernel Panic이나Oops메시지 중pm_runtime_work스택 트레이스가 포함된 경우를 함께 추적해야 합니다.
🛡️ 완화 방안
본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, EPSS 0.00091(백분위 0.00603)로 실측 악용 가능성은 매우 낮으나 로컬 권한 취약점 특성상 내부 위협에 대비해야 합니다. 이에 따라 우선순위를 monitor로 결정하였습니다.
1. 즉시 (긴급 차단)
- 조치: 불필요한 외장 디바이스(USB, Thunderbolt 등)의 핫플러그(Hot-plug) 기능을 BIOS/UEFI 또는 커널 파라미터 수준에서 제한하여 공격 표면을 최소화합니다.
- 난이도/영향: 낮음 / 일부 하드웨어 교체 작업 불가 (가용성 영향 미비).
- 검증:
lsmod및dmesg를 통해 디바이스 제거 이벤트 발생 여부 확인.
2. 단기 (완화)
- 조치: 비특권 사용자의 커널 로그 접근 권한(
kernel.dmesg_restrict = 1)을 제한하여 공격자가 Slab 레이아웃 정보를 수집하는 것을 방해합니다. - 난이도/영향: 매우 낮음 / 시스템 관리자 외 일반 사용자 로그 확인 불가.
- 검증:
sysctl kernel.dmesg_restrict값 확인.
3. 근본 (해결)
- 조치: 영향받는 커널 버전(2.6.32 ~ 6.19.10 등)을 최신 패치 버전으로 업데이트합니다. (
pm_runtime_remove()내flush_work()호출 추가 패치 적용 확인). - 난이도/영향: 보통 / 커널 업데이트 후 리부팅 필요 (서비스 일시 중단).
- 검증:
uname -r을 통해 패치된 버전으로 업데이트되었는지 확인.
잔여 리스크: 패치 이후에도 동일한 Race Condition 패턴을 가진 다른 전원 관리 모듈의 취약점이 존재할 수 있으므로, 지속적인 커널 런타임 모니터링이 필요합니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=4.7 · non-KEV · EPSS=0.00091 · exploit=hard · in_scope=None