Kestrel
CVE-2025-68798DGX_B· 2026년 8월 1일 AM 01:11

[방어] 분석 — CVE-2025-68798

Linux kernel AMD PMU race condition (CVE-2025-68798) may cause a null‑pointer GPF and potential privilege escalation; set kernel.perf_event_paranoid=2 immediately to block unprivileged perf events.

📋 요약

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

🔍 공격 기법

AMD CPU에서 perf 이벤트를 생성(perf_event_open)하고, NMI 기반 스로틀링이 진행되는 순간 cpuc->events[idx] 가 NULL 로 전이될 수 있다. 이후 amd_pmu_enable_all() 이 NULL 체크 없이 사용돼 커널에 General Protection Fault가 발생한다. 공격자는 고빈도 · 짧은 간격으로 perf 이벤트를 생성·삭제하거나, 인위적으로 NMI를 유발해 레이스 윈도우를 확대한다. 성공 시 시스템이 OOPS/패닉 상태가 되어 DoS가 일어나며, 메모리 오염 경로가 확보될 경우 cred 구조체 등을 덮어쓰기 통한 로컬 권한 상승(LPE) 가능성이 있다.

💥 영향 분석

  • 커널 OOPS·GPF 발생 → 즉시 시스템 다운 및 재부팅 필요 (서비스 가용성 상실).
  • 반복적인 크래시가 파일 시스템 손상·데이터 유실을 초래할 수 있음.
  • 메모리 오염이 성공하면 루트 권한 획득(LPE)으로 이어져 전체 호스트가 장악당할 위험이 존재한다.

🔗 관련 취약점·체이닝

  • 추정: CWE‑362(레이스 컨디션)와 CWE‑476(NULL 포인터 역참조) 계열의 커널 버그와 유사.
  • 과거 perf_event_open 에서 검증 누락으로 발생한 로컬 권한 상승 취약점과 연계될 가능성이 있다.
  • NMI‑triggered watchdog·watchdog 관련 취약점과 결합하면 레이스 윈도우가 확대되어 공격 표면이 넓어질 수 있다.

🔎 탐지

  1. 커널 로그 지표dmesg, /var/log/kern.log에 다음 문자열이 포함된 항목을 모니터링한다.

    • general protection fault
    • null-ptr-deref
    • perf_event_nmi_handler 또는 amd_pmu_enable_all
  2. SIEM 쿼리 예시 (Splunk)

text
1index=linux_logs sourcetype=kern
2("general protection fault" AND ("perf_event_nmi_handler" OR "amd_pmu_enable_all"))
3| stats count by host, _time
4| where count > 0
  1. 정규식 패턴 (syslog 파싱용)
text
1.*GPF.*null-ptr-deref.*(perf_event_nmi_handler|amd_pmu_enable_all).*
  1. eBPF 기반 실시간 감시perf_event_open 시스템 콜을 후킹하고, 동일 PID에서 1초 내 호출 횟수가 50회를 초과하거나 attr.type 값이 AMD‑전용(PERF_TYPE_RAW)이면서 비정상적인 config 비트가 설정된 경우 경보 생성. (의사코드)

    • if syscall == perf_event_open and pid != 0:
      incr counter[pid] per second;
      if counter[pid] > THRESHOLD or attr.type == RAW && config & ~ALLOWED_MASK != 0 → alert.
  2. 오탐 튜닝

    • 디버그 커널(debug=1)에서 발생하는 정상적인 null‑ptr 로그는 kernel.debug 필드가 true인 경우 제외.
    • NMI watchdog 비활성화(nmi_watchdog=0) 환경에서는 해당 경고가 나타나지 않으므로, proc/sys/kernel/nmi_watchdog == 0 인 호스트를 필터링한다.

🛡️ 완화 방안

즉시(긴급 차단)

  • kernel.perf_event_paranoid 값을 2 로 설정하여 비특권 사용자가 perf 이벤트를 생성하지 못하도록 한다.
    • 적용 방법: sysctl -w kernel.perf_event_paranoid=2 && echo "kernel.perf_event_paranoid = 2" >> /etc/sysctl.d/99-perf.conf
    • 구현 난이도: 낮음 (재부팅 없이 즉시 적용)
    • 운영 영향: 일반 사용자는 perf 명령을 사용할 수 없으며, 성능 분석 툴이 제한된다.
    • 검증: 비특권 계정에서 perf stat 실행 시 “permission denied” 메시지가 출력되는지 확인한다.

단기(완화)

  • NMI watchdog을 비활성화(nmi_watchdog=0)하여 레이스를 일으키는 NMI 흐름 자체를 차단한다. 이는 재부팅이 필요하지만, 대부분 환경에서 디버깅·감시 기능 손실만 발생한다.
    • 적용 방법: 부트 로더 커맨드라인에 nmi_watchdog=0 추가 후 재부팅.
    • 구현 난이도: 중간 (재부팅 필요)
    • 운영 영향: NMI 기반 하드웨어 감시·디버깅 기능 상실, 일반 서버에서는 크게 문제되지 않음.
    • 검증: 부팅 후 /proc/sys/kernel/nmi_watchdog 값이 0 인지 확인하고, 동일 조건에서 perf 테스트를 수행해 OOPS 발생 여부를 관찰한다.

근본(해결)

  • 취약점이 포함된 커널 버전(6.12‑rc1 이후)에서 적용된 패치를 포함한 최신 Linux 커널으로 업그레이드한다. 배포판 제공 업데이트가 나오면 즉시 적용하고, 롤백 정책을 마련한다.
    • 구현 난이도: 중~높음 (커널 교체·재부팅 및 서비스 재시작 필요)
    • 운영 영향: 커널 교체에 따른 호환성 테스트와 잠시 다운타임 발생 가능.
    • 검증: uname -r 로 버전 확인 후, 동일 워크로드에서 GPF 재현 여부를 테스트한다.

잔여 리스크

  • 패치 적용 전까지는 위 즉시·단기 조치를 유지해야 하며, 권한 상승을 목표로 하는 고급 공격자는 여전히 perf_event_open 을 이용해 메모리 오염을 시도할 수 있다. 따라서 eBPF 기반 실시간 감시와 로그 분석을 병행하여 이상 징후를 지속적으로 모니터링한다.

인시던트 대응 플레이북 (요약)

  1. 커널 로그에서 GPF/NULL‑ptr 패턴이 발견되면 즉시 알림 발생.
  2. 해당 호스트의 kernel.perf_event_paranoid 값 확인·필요 시 2 로 강제 적용.
  3. NMI watchdog 비활성화 여부를 검토하고, 가능하면 nmi_watchdog=0 적용 후 재부팅.
  4. eBPF 감시 정책이 활성화돼 있는지 점검하고, 이상 호출 빈도·비정상 attr 값이 포착되면 해당 프로세스 PID와 호출 스택을 수집한다.
  5. 근본 패치가 배포될 때까지 위 조치를 유지하고, 시스템 재부팅 후 정상 동작 여부를 확인한다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…