[방어] 분석 — CVE-2025-68742
Address the Linux kernel BPF invalid memory access (CVE-2025-68742) by restricting unprivileged BPF usage and monitoring for kernel oops/panics until patching.
📋 요약
- 심각도 미상 · CVSS 미상 · EPSS 0.0018 · 악용난이도 hard
🔍 공격 기법
본 취약점은 update_effective_progs 과정 중 메모리 할당 실패(Fault Injection 상황)가 발생했을 때, 시스템이 dummy_bpf_prog.prog로 대체하는 과정에서 발생합니다.
- 트리거:
__cgroup_bpf_detach호출 시 내부적으로update_effective_progs가 실행되나, 메모리 부족 등의 이유로 실패합니다. - 상태 전이: 실패 후
purge_effective_progs가 동작하며 대상 프로그램을dummy_bpf_prog.prog로 변경합니다. - 충돌: 이후 SoftIRQ 컨텍스트에서
__cgroup_bpf_run_filter_skb$\rightarrow$bpf_prog_run순으로 실행될 때,dummy_bpf_prog내의stats멤버(NULL)에 접근을 시도하여 Invalid Memory Access가 발생합니다.
악용 가능성: 본 취약점은 Linux Kernel의 bpf 서브시스템 내 메모리 관리 오류로 인해 발생하며, 공격 난이도는 Hard로 평가됩니다. 공격자는 BPF 프로그램의 업데이트 과정에서 특정 시점에 Fault Injection을 유도하여 update_effective_progs 함수를 실패하게 만들어야 하며, 이후 SoftIRQ 컨텍스트에서 잘못된 메모리 주소(prog->stats)에 접근하도록 트리거해야 합니다. 이는 AV:Local 및 PR:High(또는 Privileged) 조건이 전제되어야 하므로, 일반적인 원격 공격보다는 권한을 가진 내부 사용자의 권한 상승이나 시스템 크래시 유도 목적으로 악용될 가능성이 높습니다. 공격 표면은 cgroup 기반의 BPF 필터링 엔드포인트와 관련 커널 함수들로 국한됩니다. EPSS 수치가 0.0018로 매우 낮고 KEV에 등재되지 않은 점은, 이론적인 메모리 손상 가능성에도 불구하고 실제 야생(In-the-wild)에서 공격 조건(Race Condition 및 Fault Injection)을 정밀하게 맞추어 악용하기가 극히 어렵다는 것을 의미합니다. 따라서 즉각적인 대규모 침해 사고의 위협보다는 특정 환경에서의 불안정성 유발 가능성이 더 큽니다.
💥 영향 분석
- 가용성 저하: 커널 컨텍스트에서의 잘못된 메모리 참조로 인해 Kernel Panic 또는 Kernel Oops가 발생하며, 이는 시스템 전체의 크래시와 서비스 중단으로 이어집니다.
- 권한 상승 가능성: 추정: 일반적인 DoS 형태의 취약점이나, 메모리 레이아웃에 따라 드물게 제어 흐름 영향 가능성을 배제할 수 없으나 본 리포트상으로는 가용성 침해(Crash)가 주된 영향입니다.
🔗 관련 취약점·체이닝
- 유형: Use-After-Free 또는 Null Pointer Dereference 패턴의 Race Condition/Error Handling 미비 유형입니다.
- 체이닝: BPF 프로그램 로딩 및 삭제 권한을 가진 사용자나 프로세스가 시스템 리소스를 고갈시켜 의도적으로 Fault Injection 상황을 유도하는 시나리오와 연계될 수 있습니다.
🔎 탐지
본 취약점은 공격자의 페이로드가 네트워크 패킷으로 들어오는 것이 아니라 커널 내부 상태 변화에 의해 발생하므로, 시스템 로그의 '결과'를 모니터링해야 합니다. 다중 소스 데이터 일관성이 확인된 결과(신뢰도 1.0)에 기반하여 다음 지표를 추적합니다.
1. 핵심 탐지 지표
- 로그 위치:
/var/log/syslog,/var/log/messages,dmesg - 패턴:
General protection fault,Unable to handle kernel NULL pointer dereference,bpf_prog_run호출 스택 포함 여부.
2. 탐지 규칙 (SIEM 의사코드)
1SELECT timestamp, hostname, message 2FROM kernel_logs 3WHERE (message LIKE '%NULL pointer dereference%' OR message LIKE '%General protection fault%') 4 AND (message LIKE '%bpf_prog_run%' OR message LIKE '%__cgroup_bpf_run_filter_skb%') 5 AND (message LIKE '%dummy_bpf_prog%')3. 오탐 튜닝 및 주의사항
- 오탐 시나리오: 단순 하드웨어 결함이나 다른 BPF 관련 버그로 인한 Crash일 수 있습니다.
- 튜닝 방법: Call Stack에
update_effective_progs$\rightarrow$purge_effective_progs흐름이 함께 나타나는지 확인하여 본 CVE와의 연관성을 확정합니다.
🛡️ 완화 방안
실측 EPSS 값이 0.0018(백분위 0.07796)로 매우 낮고, 악용 난이도가 hard이며 KEV에 등재되지 않은 점을 근거로 우선순위를 monitor로 결정하였습니다. 하지만 잠재적 Crash 방지를 위해 다음 조치를 권고합니다.
1. 즉시 (긴급 차단)
- 조치:
unprivileged_bpf_disabled설정 활성화 - 방법:
sysctl -w kernel.unprivileged_bpf_disabled=1적용 - 난이도/영향: 낮음 / 일반 사용자의 BPF 프로그램 로드/수정 불가 (특권 계정은 영향 없음)
- 검증:
sysctl kernel.unprivileged_bpf_disabled값 확인
2. 단기 (완화)
- 조치: Cgroup BPF 필터링 사용 최소화 및 모니터링 강화
- 방법: 불필요한 cgroup 기반 BPF 프로그램 제거 및 위 탐지 쿼리를 SIEM에 등록하여 실시간 알림 설정
- 난이도/영향: 중간 / 운영 중인 BPF 기반 네트워크 정책 검토 필요
- 검증:
bpftool prog show를 통해 활성화된 프로그램 목록 확인
3. 근본 (해결)
- 조치: Linux Kernel 패치 적용 (stats가 NULL인 경우 업데이트를 건너뛰는 수정 사항 포함 버전으로 업데이트)
- 방법: OS 벤더(Ubuntu, RHEL 등)의 최신 커널 보안 업데이트 적용 후 리부팅
- 난이도/영향: 높음 / 시스템 재시작 필요 (가용성 일시 중단)
- 검증:
uname -r및 패치 노트 확인을 통해 수정 버전 반영 여부 검증
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=미상 · non-KEV · EPSS=0.0018 · exploit=hard · in_scope=None