Kestrel
CVE-2025-68725DGX_2· 2026년 7월 29일 PM 08:37

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

A local denial-of-service vulnerability in the Linux kernel's BPF subsystem, triggered by malformed GSO types via bpf_clone_redirect(), requiring a "monitor" priority due to high exploit complexity and low EPSS.

📋 요약

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

🔍 공격 기법

본 취약점은 BPF 프로그램이 패킷을 loopback 디바이스로 리다이렉트할 때, 커널 내부 함수 convert___skb_to_skb()gso_segsgso_size는 설정하지만 gso_type을 누락하여 발생하는 상태 불일치(State Mismatch) 결함이다.

  • 공격 표면 및 트리거:
    • 노출 지점: Linux Kernel BPF Subsystem (bpf_clone_redirect()).
    • 트리거 조건: 공격자가 로컬 권한으로 BPF 프로그램을 로드하고, 이를 통해 gso_type이 정의되지 않은(invalid) 상태의 skb를 loopback 인터페이스로 전송해야 함.
    • 결함 경로: bpf_clone_redirect() $\rightarrow$ convert___skb_to_skb() (gso_type 누락) $\rightarrow$ netif_skb_features() $\rightarrow$ gso_features_check() $\rightarrow$ skb_warn_bad_offload().
  • 공격 체인 및 전제 조건:
    1. 초기 접근 (Local Access): CVSS 벡터 AV:L/PR:L에 따라, 공격자는 이미 시스템에 로그인한 상태여야 하며 BPF 프로그램 로드 권한(예: CAP_BPF 또는 unprivileged_bpf_disabled=0)이 필요함.
    2. 실행 (Triggering): fuzzer와 같은 도구를 이용해 비정상적인 GSO 속성을 가진 패킷을 생성하여 loopback으로 push.
    3. 영향 발생: 커널은 gso_type과 프로토콜의 불일치를 감지하고 skb_warn_bad_offload()를 호출하며, 결과적으로 해당 패킷의 GSO 기능을 강제 비활성화함.
  • 실현 가능성 판단: 다중 소스 데이터에서 일관성이 확인되었으나(신뢰도 1.0), EPSS 수치가 0.00168로 매우 낮고 백분위가 0.06412에 불과함. 이는 이론적 취약점은 존재하나 실제 야생(Wild)에서 악용될 확률이 극히 낮음을 의미하며, 규칙 기반 우선순위 결정에 따라 monitor 등급으로 분류함.

악용 가능성: 본 취약점은 AV:LPR:L 조건에 따라, 공격자가 이미 시스템에 낮은 권한의 계정으로 접근하여 BPF(Berkeley Packet Filter) 프로그램을 로드할 수 있는 환경이어야 하므로 공격 난이도는 Hard로 판단됩니다. 공격 표면은 Linux 커널 내 bpf_clone_redirect() 함수와 루프백 디바이스를 통한 패킷 전송 경로이며, 특히 convert___skb_to_skb() 과정에서 gso_type이 누락된 채 gso_segsgso_size만 설정되는 불완전한 SKB(Socket Buffer) 구조체가 트리거 포인트가 됩니다. EPSS 수치가 0.00168로 매우 낮고 KEV에 등재되지 않은 점은, 해당 결함이 즉각적인 원격 코드 실행(RCE)이나 권한 상승으로 이어지는 직접적인 경로보다는 커널의 경고(skb_warn_bad_offload) 및 GSO 기능 비활성화라는 가용성 저하 수준에 머물 가능성이 높음을 시사합니다. 그러나 실전 관점에서는 이러한 Malformed SKB 상태가 다른 메모리 오염 취약점이나 네트워크 스택의 논리적 결함과 체이닝될 경우, 커널 패닉을 유도하는 DoS 공격이나 예기치 못한 메모리 상태를 이용한 후속 공격의 징검다리로 악용될 가능성이 존재합니다. 결과적으로 이론적인 심각도는 낮으나, BPF 기반의 정교한 퍼징 및 조작이 가능한 로컬 공격자에게는 커널 내부 상태를 불안정하게 만드는 유효한 공격 벡터가 될 수 있습니다.

💥 영향 분석

  • 가용성 저하 (DoS): 잘못된 GSO 타입으로 인해 네트워크 오프로드 기능이 비활성화되며, 이는 특정 네트워크 처리 성능 저하나 패킷 드랍으로 이어질 수 있음 (CVSS A:H).
  • 커널 로그 오염: skb_warn_bad_offload() 호출로 인해 커널 링 버퍼(dmesg)에 경고 메시지가 지속적으로 출력되어 분석을 방해함.

🔗 관련 취약점·체이닝

본 결함 단독으로는 단순한 기능 비활성화 및 로그 생성에 그치지만, 다음과 같은 체이닝 가능성이 존재함:

  • 추정: 권한 상승(LPE)으로의 확장: gso_type 불일치로 인해 커널 내부의 GSO 핸들러가 예상치 못한 상태(Unexpected State)에서 동작하게 만들 수 있다면, 이를 통해 메모리 오염(Memory Corruption)이나 타입 혼동(Type Confusion) 취약점으로 연결될 가능성이 있음.
  • 추정: 네트워크 스택 우회: GSO 검증 로직을 무력화하거나 비정상적인 패킷 구조를 강제함으로써, 커널의 보안 필터링이나 방화벽 규칙을 우회하는 경로로 활용될 수 있음.
  • 패턴: Local Access $\rightarrow$ BPF State Manipulation $\rightarrow$ Kernel Logic Error (GSO) $\rightarrow$ 추정: Memory Corruption / Privilege Escalation.

🔎 탐지

  • 커널 로그 모니터링: dmesg 또는 /var/log/kern.log에서 skb_warn_bad_offload() 관련 경고 메시지가 반복적으로 발생하는지 확인.
  • BPF 호출 추적: bpftrace 등을 사용하여 bpf_clone_redirect 함수 호출 빈도와 대상 인터페이스가 loopback인 케이스를 모니터링.

🛡️ 완화 방안

  • 근본 해결: 영향받는 커널 버전(5.6 ~ 6.18.2)을 최신 보안 패치가 적용된 버전으로 업데이트하여 convert___skb_to_skb()에서 gso_type이 올바르게 설정되도록 수정.
  • 즉시 조치: 비특권 사용자의 BPF 로드 권한 제한 (sysctl -w kernel.unprivileged_bpf_disabled=1).

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…