Kestrel
CVE-2025-68798DGX_A· 2026년 8월 1일 AM 12:15

[공격] 분석 — CVE-2025-68798

CVE-2025-68798 is a race condition in the AMD PMU code of the Linux kernel that can cause a null‑pointer dereference (GPF) and potentially be leveraged for privilege escalation; immediate mitigations are applying the patched kernel and restricting unprivileged perf_event_open access.

📋 요약

  • 심각도 미상 · CVSS 미상 · EPSS 0.00173 · 악용난이도 hard

🔍 공격 기법

  • 공격 표면

    • perf_event_open 시스템 콜(특히 AMD 전용 PMU 이벤트 설정)
    • attr.type = PERF_TYPE_HARDWARE, config 등 사용자‑제어 가능한 필드
    • NMI 발생 경로(perf_event_nmi_handler)와 x86_pmu_stop() 호출 시점
  • 트리거 조건

    1. 공격자는 일반 권한(UID 0이 아닌) 프로세스에서 perf_event_open을 이용해 이벤트를 생성한다.
    2. 이벤트가 활성화되는 과정(amd_pmu_enable_all())에서 CPU‑local 구조체 cpuc->events[idx] 가 NULL 로 전환될 수 있는 레이스 상황을 유도한다.
    3. NMI‑throttle(예: 성능 카운터 오버플로)와 동시에 x86_pmu_stop() 이 호출되면, 기존 검증이 누락된 포인터가 x86_pmu_enable_event 로 전달되어 GPF 발생한다.
  • 공격 단계

    1. 정찰 – 대상 시스템이 AMD CPU이며 커널 버전 6.12‑rc 이하(패치 미적용)인지 확인 (/proc/cpuinfo, uname -r).
    2. 초기 접근 – 일반 사용자 권한으로 perf_event_open 호출을 반복하여 이벤트 생성 시도를 기록한다.
    3. 실행·권한 획득 – 레이스 타이밍을 조절(고빈도 이벤트, 인위적 NMI 발생 via raise(SIGFPE) 등)해 null‑ptr deref 를 유발하고, 커널 모드에서의 페이지 폴트 핸들러를 우회하면 메모리 손상 가능성 확보.
    4. 지속 – 성공적인 메모리 오염(예: cred 구조체 변조) 시 루트 권한을 획득하고, 커널 모듈 로드 혹은 /etc/ld.so.preload 등 영구적 수단으로 유지.
    5. 영향 – 시스템 전체 DoS(커널 패닉) 또는 LPE를 통한 임의 코드 실행이 가능해짐.
  • CVSS‑유사 벡터 (공격 조건 기반)

    • AV: Network/Local (악용은 로컬 프로세스에서 시작)
    • AC: High (정밀한 레이스 타이밍 필요)
    • PR: Low (일반 사용자 권한으로도 트리거 가능)
    • UI: None

악용 가능성: 이 취약점은 Local(AV=L) 환경에서 높은 난이도(AC=H) 의 레이스 컨디션을 요구하므로, 공격자는 직접 시스템에 접근해 perf_event_open 등 perf 인터페이스를 이용해야 합니다. 권한 요구는 특권이 없는 사용자(PR=N) 로도 가능하지만, 성공하려면 NMI‑핸들러와 x86_pmu_stop() 사이의 미세한 타이밍을 맞춰야 하므로 사용자 상호작용(UI=NONE) 이 필요하지 않은 순수 자동화 공격이 어렵습니다. EPSS 0.00173이라는 매우 낮은 실측 확률과 KEV에 등재되지 않은 점은 현재까지 실제 악용 사례가 거의 없으며, 공격 성공 가능성이 이론적인 심각도와는 별개로 현저히 낮다는 것을 의미합니다. 트리거 조건은 AMD CPU 전용이며, 커널 6.12‑rc1 이전 버전에서 amd_pmu_enable_all() 함수가 cpuc->events[idx] 가 NULL인 상황을 제대로 검사하지 않을 때 발생합니다. 공격 표면은 perf subsystem(syscall perf_event_open, /proc/sys/kernel/perf_event_paranoid 등)과 내부 NMI 처리 루틴이며, 해당 파라미터(idx)를 조작해 레이스를 유발해야 합니다. 따라서 실제 환경에서 이 결함을 이용한 권한 상승은 정밀한 타이밍 제어와 AMD‑전용 커널 버전이라는 제한적인 전제조건 때문에 “hard” 등급으로 평가됩니다.

💥 영향 분석

  • DoS – 커널 일반 보호 오류(GPF) 발생 시 시스템 크래시 및 재부팅.
  • 권한 상승 – 레이스를 성공적으로 이용해 커널 메모리를 변조하면 루트 권한 획득(LPE) 가능.
  • 데이터 무결성 손상 – 메모리 오염이 다른 프로세스·커널 구조에 영향을 미쳐 서비스 거부 및 정보 유출 위험이 증대됨.

🔗 관련 취약점·체이닝

  • 동일 커널 버전에서 보고된 perf_event‑계열 레이스 조건(CWE‑362)과 결합하면, Perf Event → Null‑ptr Deref → Kernel Memory Corruption → Credential Overwrite 라는 전형적인 권한 상승 체인이 완성될 수 있다.
  • 추정: 이 취약점은 perf_event_paranoid 제한을 우회하거나 이미 획득된 루트 권한에서 다른 커널 취약점(예: CVE‑2024‑xxxx와 같은 KASAN bypass)과 연계해 Write‑What‑Where 공격으로 확장될 가능성이 있다.

🔎 탐지

  • 커널 로그에 “general protection fault” 및 “KASAN: null-ptr-deref … 0x…01a0” 메시지가 반복적으로 기록되는 경우.
  • perf_event_nmi_handler 실행 시간이 10 ms 이상 지속될 때(dmesg에 “NMI handler took too long”) 경고 발생.
  • 비정상적으로 높은 빈도의 perf_event_open 호출(특히 동일 PID에서 짧은 간격으로 다수) 감시.

🛡️ 완화 방안

  1. 패치 적용 – 커밋 “perf/x86/amd: Check event before enable to avoid GPF”가 포함된 Linux 6.12‑rc 이후 버전으로 업그레이드.
  2. 접근 제한/proc/sys/kernel/perf_event_paranoid 값을 2 또는 3 으로 설정해 비특권 사용자의 perf_event_open을 차단.
  3. 시스템 콜 모니터링 – eBPF 프로그램으로 perf_event_open 파라미터와 호출 빈도를 실시간 필터링하고, 이상 징후 발생 시 알림.
  4. 보안 강화 – SELinux/AppArmor 프로파일에 perf_event_open 사용을 제한하거나, NMI‑핸들러 로그 레벨을 높여 조기 탐지 가능하도록 설정.

위 조치를 통해 현재 EPSS 0.00173(실제 악용 가능성은 낮지만 존재) 및 hard 난이도 평가를 고려한 “monitor” 우선순위에 부합하는 방어가 구현됩니다.

⚖️ 위험도 / 우선순위

  • 조치: monitor (모니터링)
  • 근거: CVSS=미상 · non-KEV · EPSS=0.00173 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…