[분석가] 분석 — CVE-2025-38192
A NULL pointer dereference vulnerability in the Linux kernel can cause a system crash if a BPF program changes skb protocol from IPv4 to IPv6 without clearing the dst, requiring kernel updates to affected versions.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00152 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: NAT46 기능을 수행하는 BPF 프로그램이 ingress 패킷의 프로토콜을 IPv4에서 IPv6로 변경할 때, 기존의 dst (destination) 구조체를 명확히 제거(clear)하지 않고 그대로 유지한 채 전달할 경우 발생합니다.
(2) 공격 단계:
- 정찰 및 전제조건: 대상 시스템이 취약한 Linux 커널 버전을 사용하며, 특정 BPF 프로그램(NAT46 등)이 ingress 인터페이스에 로드되어 있어야 합니다.
- 초기 접근: 공격자가 조작된 패킷을 송신하여 해당 BPF 프로그램의 처리 경로를 타게 합니다. (추정: Local 권한 필요)
- 실행 및 영향:
netif_rx()과정에서 BPF가 IPv6 헤더를 삽입하고 프로토콜을 변경하지만,dst정보가 불일치하여ip6_rcv_core함수 내에서 NULL pointer dereference가 발생하며 커널 패닉(Kernel Panic)으로 이어집니다.
(3) 공격 표면: Linux Kernel Network Stack (skb protocol handling), BPF (Berkeley Packet Filter) programs.
(4) CVSS 벡터 연결: - AV:L (Local): BPF 프로그램을 로드하거나 특정 네트워크 경로를 제어하기 위해 로컬 접근 권한이 필요함을 의미합니다.
- AC:L (Low): 트리거 조건 충족 시 공격 복잡도가 낮습니다.
- PR:L (Low): BPF 실행 등을 위한 최소한의 사용자 권한이 요구됩니다.
- UI:N (None): 사용자 상호작용 없이 시스템 수준에서 발생합니다.
악용 가능성: 본 취약점은 공격 난이도가 Hard로 평가되며, 실제 악용 가능성은 매우 제한적입니다. CVSS 벡터상 AV:L과 PR:L 조건은 공격자가 이미 시스템에 낮은 권한으로 진입하여 커널 수준의 설정을 조작할 수 있는 환경을 전제로 합니다. 특히 공격 표면은 일반적인 네트워크 엔드포인트가 아니라, 특정 NAT46 BPF(Berkeley Packet Filter) 프로그램이 구현된 Linux 커널 내부의 skb 프로토콜 처리 로직에 국한됩니다. 트리거 조건은 BPF 프로그램이 ingress 패킷을 IPv4에서 IPv6로 무분별하게 전환할 때 발생하는 NULL pointer dereference이며, 이는 정교하게 설계된 BPF 필터링 환경에서만 가능합니다. EPSS 수치가 0.00152로 매우 낮고 KEV에 등재되지 않은 점은 이론적인 커널 크래시 위험과 별개로 실제 야생(In-the-wild)에서의 악용 사례가 거의 없음을 시사합니다. 결과적으로 본 취약점은 외부 원격 공격보다는 권한을 획득한 내부 사용자가 시스템 가용성을 저해하려는 특수한 시나리오에서만 유효한 위험입니다.
💥 영향 분석
(1) 기술적 위험: 커널 패닉으로 인한 시스템 즉시 중단(Denial of Service, DoS). BUG: kernel NULL pointer dereference가 발생하며 OS가 크래시됩니다.
(2) 비즈니스 영향:
- 가용성: 서버 다운타임 발생으로 인한 서비스 중단 및 업무 연속성 저해.
- 리스크 규모: Linux 커널의 광범위한 버전(4.8 ~ 6.15.4 일부)이 영향 범위에 포함되어 잠재적 노출 규모는 크나, 실제 악용을 위해서는 BPF 프로그램 제어라는 까다로운 전제가 필요합니다.
🔗 관련 취약점·체이닝
- 유형 및 패턴: 본 취약점은 '상태 불일치로 인한 NULL 포인터 역참조' 유형입니다.
- 체이닝 가능성: (추정) 단독으로는 서비스 거부(DoS)에 그치지만, 다른 커널 메모리 손상 취약점과 결합될 경우 시스템 불안정성을 이용한 권한 상승(Privilege Escalation)의 단계로 활용될 가능성이 있으나, 현재 근거로는 DoS 위험이 지배적입니다.
🔎 탐지
(1) 로그 지표: 커널 링 버퍼(dmesg) 또는 /var/log/syslog 내에 BUG: kernel NULL pointer dereference, ip6_rcv_core, netif_rx 등의 함수 호출 스택이 포함된 Panic 로그가 기록됩니다.
(2) 탐지 규칙 예시:
- 로직 1 (로그 기반):
grep -E "NULL pointer dereference.*ip6_rcv_core" /var/log/kern.log - 로직 2 (BPF 모니터링):
bpftool prog list를 통해 NAT46 관련 혹은 프로토콜 변환을 수행하는 비정상적인 BPF 프로그램의 로드 여부 확인.
(3) 오탐 시나리오: 네트워크 드라이버의 일반적인 버그나 하드웨어 결함으로 인한 커널 패닉과 혼동될 수 있습니다.ip6_rcv_core와skb protocol change관련 호출 스택이 명확히 나타나는지 확인하여 튜닝해야 합니다.
🛡️ 완화 방안
- 즉시(긴급 차단): 신뢰할 수 없는 사용자의 BPF 프로그램 로드 권한을 제한합니다 (
sysctl -w kernel.unprivileged_bpf_disabled=1). (난이도: 저 / 영향: 일부 BPF 기반 도구 작동 불가 / 검증:sysctl값 확인) - 단기(완화): NAT46 등 프로토콜 변환을 수행하는 커스텀 BPF 프로그램의 로직을 검토하여, 프로토콜 변경 시
dst를 명시적으로 clear 하는지 확인하고 수정합니다. (난이도: 중 / 영향: 성능 영향 미미 / 검증: 코드 리뷰) - 근본(해결): 영향을 받는 Linux 커널 버전을 최신 패치 버전으로 업데이트합니다. (대상: 4.8
6.6.95, 6.76.12.35, 6.13~6.15.4 등 수정 버전 적용). (난이도: 중 / 영향: 재부팅 필요로 인한 일시적 서비스 중단 / 검증:uname -r버전 확인)
[분석 근거]
본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며(신뢰도 1.0), 실측 EPSS 값(0.00152, 백분위 0.04821)과 KEV 미등재 사실, 그리고 AV:L의 공격 벡터를 근거로 실제 악용 가능성을 'hard'로 판단하였습니다. 이에 따라 즉각적인 대응보다는 패치 적용 및 모니터링 중심의 'monitor' 우선순위를 결정하였습니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00152 · exploit=hard · in_scope=None