[공격] 분석 — CVE-2025-68798
A race condition in the AMD PMU implementation allows for a kernel-level General Protection Fault (GPF), necessitating immediate restriction of unprivileged perf event access on AMD systems.
📋 요약
- 심각도 미상 · CVSS 미상 · EPSS 0.00173 · 악용난이도 hard
🔍 공격 기법
- 취약점 원리:
amd_pmu_enable_all()함수가 이벤트를 활성화하기 전, 해당 이벤트 객체가NULL인지 확인하지 않는 결함입니다.NMI->throttle->x86_pmu_stop()과의 미묘한 Race Condition이 발생하면cpuc->events[idx]가NULL이 될 수 있으며, 이를 그대로 참조(Dereference)할 때 GPF(General Protection Fault)가 트리거됩니다. - 공격 표면 (Attack Surface):
- 대상: AMD CPU 기반 Linux 시스템.
- 엔드포인트/함수:
perf_event_open시스템 콜을 통한 PMU 이벤트 설정 및 제어 경로. 특히amd_pmu_enable_all()내부의x86_pmu_enable_event호출 지점이 핵심 타겟입니다.
- 공격 체인 및 전제 조건:
- 정찰/초기 접근: 공격자는 시스템의 CPU 아키텍처가 AMD임을 확인하고,
/proc/sys/kernel/perf_event_paranoid설정값이 낮아 일반 사용자가perf이벤트를 생성할 수 있는 상태여야 합니다(추정: 권한이 제한된 경우 Local Privilege Escalation 취약점과 체이닝 필요). - 트리거 실행: 다수의 CPU 코어에서 동시에 PMU 이벤트를 활성화/비활성화하며
NMI핸들러와amd_pmu_enable_all간의 Race Window를 강제로 생성합니다. - 결과:
NULL포인터 참조로 인한 커널 패닉(Oops) 및 시스템 크래시 유발.
- 정찰/초기 접근: 공격자는 시스템의 CPU 아키텍처가 AMD임을 확인하고,
- CVSS 벡터 관점의 실전 분석:
- AV (Attack Vector): Local. 물리적/논리적 로컬 접근이 필요합니다.
- AC (Attack Complexity): High. 정교한 타이밍 제어가 필요한 Race Condition이며, 특정 하드웨어(AMD) 환경에 종속적입니다.
- PR (Privileges Required): Low/None (설정에 따라 다름).
perf_event접근 권한이 전제되어야 합니다.
악용 가능성: 본 취약점은 AMD CPU 아키텍처의 PMU(Performance Monitoring Unit) 제어 과정에서 발생하는 Race Condition으로, 공격 난이도는 Hard로 판정됩니다. 공격자는 perf_event 시스템 콜을 통해 커널의 PMU 설정 함수에 접근해야 하며, 특히 amd_pmu_enable_all() 실행 시점에 NMI(Non-Maskable Interrupt) 핸들러가 개입하여 cpuc->events[idx]를 NULL로 만드는 매우 정밀한 타이밍 공격이 전제되어야 합니다. EPSS 수치가 0.00173으로 매우 낮고 KEV에 등재되지 않은 점은, 이론적인 취약점임에도 불구하고 실제 야생(In-the-wild)에서 공격자가 이 찰나의 레이스 컨디션을 제어하여 안정적인 익스플로잇을 구현하기가 극도로 어렵음을 시사합니다. 공격 표면은 Linux 커널의 perf 서브시스템과 AMD 전용 PMU 드라이버 인터페이스에 국한되며, 하드웨어 종속적인 특성상 AMD 프로세서가 탑재된 시스템에서만 트리거됩니다. 결과적으로 이 취약점은 원격 실행보다는 로컬 권한을 가진 공격자가 커널 패닉(GPF)을 유도하는 DoS 공격이나, 매우 희박한 확률로 메모리 오염을 통한 권한 상승을 시도하는 경로로 악용될 가능성이 있습니다.
💥 영향 분석
- 가용성 파괴: 커널 모드에서 GPF가 발생하므로 즉각적인 시스템 크래시(Kernel Panic) 및 서비스 중단이 발생합니다.
- DoS (Denial of Service): 원격 공격자가 로컬 쉘을 확보한 상태라면, 지속적인 리부팅 유도를 통해 시스템 가용성을 완전히 상실시킬 수 있습니다.
🔗 관련 취약점·체이닝
- 권한 상승 체이닝: 본 취약점 단독으로는 DoS에 그치지만,
NULL포인터 역참조 시 특정 메모리 영역을 제어할 수 있는 다른 결함과 체이닝될 경우 추정: 임의 코드 실행(ACE)이나 권한 상승으로 이어질 가능성이 있습니다. - 정보 유출 체이닝: PMU 설정 과정에서 발생하는 Side-channel 취약점과 결합하여, 커널 메모리 레이아웃을 파악한 뒤 정교하게 Race Condition을 유도하는 방식으로 공격 성공률을 높일 수 있습니다.
- 패턴 분석:
Race Condition$\rightarrow$Null Pointer Dereference$\rightarrow$Kernel Panic/GPF로 이어지는 전형적인 커널 불안정성 패턴입니다.
🔎 탐지
- 커널 로그 모니터링:
dmesg또는/var/log/syslog에서 다음과 같은 패턴의 Oops 메시지를 탐지합니다.Oops: general protection faultKASAN: null-ptr-deref in rangeRIP: x86_pmu_enable_event또는amd_pmu_enable_all
- 시스템 콜 추적: 일반 사용자가 비정상적으로 많은 수의
perf_event_open을 호출하거나 PMU 설정을 반복적으로 변경하는 행위를 모니터링합니다.
🛡️ 완화 방안
- 즉시 조치:
/proc/sys/kernel/perf_event_paranoid값을2또는3으로 설정하여 일반 사용자의perf이벤트 접근을 완전히 차단합니다. - 근본 해결:
amd_pmu_enable_all()에서 이벤트 활성화 전NULL체크 로직이 추가된 최신 커널 패치를 적용합니다.
[파이프라인 근거] 본 분석은 다중 소스 데이터의 일관성이 확인(신뢰도 1.0)된 사실을 바탕으로 작성되었습니다. 실측 EPSS 값인 0.00173과 낮은 백분위(0.06994)는 실제 야생에서의 악용 가능성이 매우 낮음을 의미하며, 이에 따라 악용 등급을 hard, 우선순위를 monitor로 결정하였습니다. 이는 이론적 심각도보다 실질적인 공격 난이도와 하드웨어 종속성을 우선시한 결과입니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=미상 · non-KEV · EPSS=0.00173 · exploit=hard · in_scope=None