Kestrel
CVE-2025-38192DGX_2· 2026년 7월 29일 AM 07:42

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

A NULL pointer dereference in the Linux kernel occurs when a BPF program changes an skb protocol from IPv4 to IPv6 without clearing the dst, leading to a system crash; immediate patching of the kernel is recommended.

📋 요약

  • 심각도 medium · CVSS 5.5 · EPSS 0.00152 · 악용난이도 hard

🔍 공격 기법

(1) 트리거 조건: NAT46 기능을 수행하는 BPF 프로그램이 ingress 패킷의 프로토콜을 IPv4에서 IPv6로 변경할 때, 기존 IPv4용 dst 구조체를 명시적으로 제거(clear)하지 않고 그대로 유지한 상태에서 ip6_rcv_core 함수가 호출될 때 발생함.

(2) 공격 단계:

  • 정찰: 대상 시스템의 커널 버전 및 BPF 기반 NAT46 설정 여부 확인.
  • 초기 접근: 로컬 권한 획득 (AV:L, PR:L). BPF 프로그램을 로드하고 실행할 수 있는 권한이 필요함.
  • 실행/영향:
    • 공격자가 설계한 BPF 프로그램이 ingress 패킷의 프로토콜을 v4 $\rightarrow$ v6로 강제 전환.
    • 커널은 변경된 프로토콜(v6)에 따라 ip6_rcv_core를 호출하지만, 내부적으로는 여전히 v4용 dst가 남아있어 NULL 포인터 참조 발생.
    • 결과적으로 Kernel Panic 및 시스템 크래시 유발.

(3) 공격 표면:

  • 함수/엔드포인트: netif_rx(), ip6_rcv_core(), ipv6_rcv().
  • 프로토콜: IPv4 $\rightarrow$ IPv6 전환 패킷 (NAT46 BPF).

(4) CVSS 벡터 연결:

  • AV:L / PR:L: 로컬 사용자가 BPF 프로그램을 제어할 수 있는 권한을 가져야 하므로 원격 공격은 불가능함.
  • AC:L: 특정 조건의 BPF 프로그램만 실행하면 즉시 트리거됨.

악용 가능성: 본 취약점은 공격 난이도가 매우 높은 hard 등급으로, 네트워크 패킷의 프로토콜 변경 과정에서 발생하는 NULL pointer dereference 기반의 커널 크래시(DoS) 결함입니다. 공격 표면은 Linux 커널 내 NAT46 기능을 수행하는 BPF 프로그램이며, 특히 ingress 패킷을 IPv4에서 IPv6로 무분별하게 전환하는 특정 조건의 파라미터 조작이 트리거가 됩니다. CVSS 벡터상 AV:LPR:L이 요구되므로, 공격자는 이미 시스템에 낮은 권한으로 접근하여 커널 수준의 BPF 프로그램을 로드하거나 수정할 수 있는 환경을 전제로 합니다. EPSS 수치가 0.00152로 매우 낮고 KEV에 등재되지 않은 점은 이 취약점이 일반적인 외부 원격 공격보다는 특수한 네트워크 구성 및 권한 획득 후의 내부 권한 상승/서비스 거부 시나리오에서만 제한적으로 유효함을 의미합니다. 결과적으로 단순 패킷 전송만으로는 트리거가 불가능하며, BPF 프로그램을 통한 커널 메모리 내 dst 구조체 관리 오류를 유도해야 하므로 실전 악용 가능성은 낮습니다.

💥 영향 분석

(1) 기술적 위험: 서비스 중단 (DoS). NULL pointer dereference로 인한 Kernel Panic이 발생하여 시스템이 완전히 정지됨. 데이터 유출이나 권한 상승으로 이어질 가능성은 낮으나, 가용성에 치명적임.
(2) 비즈니스 영향: 서버 다운타임으로 인한 서비스 불능 상태 초래. 특히 NAT46 환경의 네트워크 게이트웨이나 컨테이너 호스트에서 발생 시 광범위한 네트워크 장애 유발 가능.

🔗 관련 취약점·체이닝

  • 추정: 본 취약점은 단독으로는 DoS에 그치지만, 다른 메모리 오염 취약점과 체이닝될 경우 커널 상태를 불안정하게 만들어 특정 레이스 컨디션을 유도하거나 방어 메커니즘을 무력화하는 용도로 사용될 수 있음.
  • 추정: BPF 권한 획득(Privilege Escalation) $\rightarrow$ 본 취약점을 이용한 시스템 강제 재부팅 $\rightarrow$ 부팅 과정의 취약점 공략으로 이어지는 체인이 가능할 것으로 보임.

🔎 탐지

(1) 로그 지표: 커널 로그(dmesg, /var/log/syslog) 내 BUG: kernel NULL pointer dereference 메시지와 함께 ip6_rcv_coreipv6_rcv 함수가 포함된 Call Stack 확인.
(2) 탐지 규칙:

  • 로직: grep -E "NULL pointer dereference.*ip6_rcv_core" /var/log/kern.log
  • SIEM 쿼리 예시: process.name == "kworker" AND message CONTAINS "NULL pointer dereference" AND message CONTAINS "ip6_rcv_core"
    (3) 오탐 시나리오: 정상적인 커널 패닉이나 다른 네트워크 드라이버 오류로 인한 크래시일 수 있음. Call Stack에 BPF 관련 함수나 netif_rx가 포함되어 있는지 확인하여 튜닝.

🛡️ 완화 방안

  • 즉시(긴급 차단): 신뢰할 수 없는 사용자의 BPF 프로그램 로드 제한 (sysctl -w kernel.unprivileged_bpf_disabled=1). (난이도: 낮음 / 영향: 일부 BPF 기반 앱 동작 불가)
  • 단기(완화): NAT46 기능을 수행하는 커스텀 BPF 프로그램의 소스 코드를 검토하여 프로토콜 변경 시 dst를 명시적으로 초기화하도록 수정. (난이도: 중간 / 영향: 개발 공수 발생)
  • 근본(해결): 취약점이 해결된 최신 Linux 커널 버전으로 업데이트.
    • 대상 버전: 6.6.96+, 6.12.36+, 6.15.5+ 등 패치 적용 버전. (난이도: 중간 / 영향: 시스템 재부팅 필요)

[분석 근거] 본 리포트는 다중 소스 교차검증을 통해 데이터 일관성을 확인하였으며, 실측 EPSS(0.00152, 백분위 0.04821) 수치가 매우 낮고 KEV에 등재되지 않았으며 공격 난이도가 Hard(AV:L/PR:L)인 점을 근거로 우선순위를 'monitor'로 결정함.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…