[공격] 분석 — CVE-2025-68742
Linux kernel BPF bug (CVE-2025-68742) allows a privileged attacker to trigger a null‑stats dereference in soft‑irq context, leading to kernel panic; immediate mitigation is to apply the upstream patch that skips stats updates when prog->stats is NULL.
📋 요약
- 심각도 미상 · CVSS 미상 · EPSS 0.0018 · 악용난이도 hard
🔍 공격 기법
- 공격 표면:
bpf()시스템 콜을 통한 BPF 프로그램 로드·첨부, 특히 cgroup BPF (__cgroup_bpf_detach/update_effective_progs) 경로. - 트리거 조건:
- 공격자는
CAP_SYS_ADMIN등 높은 권한을 보유하고 있어야 함(또는 컨테이너 환경에서 특권 컨테이너). - 악성 BPF 프로그램을 cgroup에 로드 후,
update_effective_progs내부에서 메모리 할당 오류·fault injection(예: OOM, ftrace fault‑inject) 를 유도한다. purge_effective_progs가 실행되면서 원본 prog 객체가dummy_bpf_prog.prog로 교체되고,prog->stats가 NULL이 된다.- 이후 네트워크 패킷 등으로 soft‑irq (
__do_softirq → __cgroup_bpf_run_filter_skb) 가 발생하면bpf_prog_run내부에서this_cpu_ptr(prog->stats)를 dereference 하여 커널 페이지 폴트를 일으킨다.
- 공격자는
- 공격 단계:
- 정찰 – 시스템에 BPF·cgroup 기능이 활성화돼 있는지 확인 (
/proc/sys/kernel/unprivileged_bpf_disabled등). - 초기 접근 –
bpf()로 악성 프로그램을 로드하고 cgroup에 attach. - 실행·권한 획득 – fault‑inject 도구(e.g.,
fault-inject커널 모듈) 로update_effective_progs할당을 강제로 실패시킴. - 지속 – 별도 지속 메커니즘은 필요 없으며, 재현 가능한 조건만 유지하면 매번 동일한 OOPS 발생 가능.
- 영향 – 커널 패닉(Denial‑of‑Service) 혹은 잠재적 메모리 오염을 통한 권한 상승 시도(하지만 현재는 주로 DoS).
- 정찰 – 시스템에 BPF·cgroup 기능이 활성화돼 있는지 확인 (
- CVSS 벡터 (추정): AV=Network, AC=Low, PR=High, UI=None →
AV:N/AC:L/PR:H/UI:N로 추정되지만 공식 점수는 없음.
💥 영향 분석
- 성공 시 커널이 즉시 패닉하여 시스템 전체가 다운됩니다(DoS).
- 공격자는 서비스 중단을 초래함으로써 SLA 위반·비즈니스 손실을 야기할 수 있습니다. 현재 알려진 바에 따르면 원격 코드 실행은 보장되지 않으며, 권한 상승 가능성도 추가적인 결합 취약점 없이는 제한적입니다.
🔗 관련 취약점·체이닝
- 유형:
CWE‑124(버퍼/메모리 접근 오류) →CWE‑190(무효 포인터 역참조). - 가능한 체인:
CWE‑269(권한 관리 부실) → 특권 BPF 프로그램 로드 → 위 결함 유발.- 다른 커널 메모리 손상 취약점(e.g.,
CVE‑2024‑xxxx등)과 조합 시, OOB 쓰기/읽기로 권한 상승을 시도할 수 있음(구체적 CVE 번호는 확인되지 않음 → 추정).
🔎 탐지
- 커널 로그에
BUG: kernel NULL pointer dereference,invalid memory access와 함께 스택 트레이스bpf_prog_run → __cgroup_bpf_run_filter_skb가 기록되는 경우. auditd로 BPF 시스템 콜(bpf) 및 cgroup BPF attach/detach 이벤트를 모니터링하고,update_effective_progs실패 로그가 발생하면 경보 생성.- Soft‑irq 실행 시
stats == NULL경고를 출력하도록 커널 디버그 옵션을 활성화할 수 있음.
🛡️ 완화 방안
- 패치 적용 – upstream 패치를 배포한 최신 Linux kernel(≥ 5.x, 해당 패치 포함)으로 업데이트한다. 이는
prog->stats가 NULL인 경우 통계 업데이트를 건너뛰도록 수정한다[교차검증]. - 임시 방어 – cgroup BPF 기능을 비활성화(
sysctl kernel.unprivileged_bpf_disabled=1또는 커널 부팅 옵션cgroup_bpf=no)하여 해당 경로 자체를 차단한다. - 권한 제한 – BPF 프로그램 로드·첨부 권한을 최소화하고, SELinux/AppArmor 프로파일에서
cap_sys_admin사용을 제한한다. - 모니터링 강화 – 위 탐지 항목을 SIEM에 연동해 실시간 알림을 설정하고, OOM/ fault‑inject 시도와 같은 비정상적인 메모리 할당 실패 로그를 주기적으로 검토한다.
우선순위는 EPSS 0.0018(실측 악용 예측)과 “hard” 등급, CVSS 미확인·KEV 미등재 상황을 고려해 monitor 로 지정되었습니다[실측 악용예측][우선순위 결정].
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=미상 · non-KEV · EPSS=0.0018 · exploit=hard · in_scope=None