Kestrel
CVE-2025-68725DGX_F· 2026년 7월 31일 PM 10:52

[단독방어] 분석 — CVE-2025-68725

CVE-2025-68725 allows unprivileged eBPF programs to craft malformed GSO packets that trigger kernel offload warnings and disable GSO, therefore the highest‑priority immediate mitigation is to block non‑root eBPF loading via kernel.unprivileged_bpf_disabled=1.

📋 요약

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

🔍 공격 기법

bpf_test_infra 로 로드된 eBPF 프로그램이 bpf_clone_redirect() 를 호출해 패킷을 루프백(lo) 인터페이스로 전달합니다. 변환 과정인 convert___skb_to_skb()gso_type 을 초기화하지 않아 GSO 속성이 비정상(gso_segs, gso_size만 설정)되고, 이후 netif_skb_features()gso_features_check() 에서 skb_warn_bad_offload 경고가 발생합니다. 이 경고로 인해 커널은 해당 흐름의 GSO‑related offload 기능을 비활성화합니다.

악용 가능성: 이 취약점은 CVSS 벡터 AV:L/AC:L/PR:L/UI:N 로 표시되므로 공격자는 동일한 호스트에 물리·논리적으로 접근할 수 있는 경우, 복잡한 사전 준비 없이도 낮은 난이도로 악용할 수 있습니다. 그러나 PR:L 은 로컬 사용자라도 최소 권한(예: 일반 사용자)만으로는 BPF 프로그램을 커널에 로드하기 어렵다는 점을 의미하므로, 실제 공격자는 보통 root 혹은 CAP_BPF·CAP_SYS_ADMIN 과 같은 특권을 이미 획득해야 합니다. EPSS 0.00168 은 전 세계적으로 이 취약점이 실질적으로 악용될 가능성이 매우 낮음을 보여주며, KEV 에 등재되지 않은 점도 현재까지 대규모 공격 캠페인이 보고되지 않았다는 사실과 일치합니다. 공격 표면은 BPF 테스트 인프라를 통해 bpf_clone_redirect() 로 패킷을 루프백 인터페이스에 전달할 때 발생하는 GSO 메타데이터(gso_segs, gso_size는 설정되지만 gso_type이 누락된 경우)이며, 이는 커널 내부의 skb_warn_bad_offload() 경고를 유발합니다. 따라서 노출되는 엔드포인트는 로컬 시스템 내 BPF 프로그램 로딩 인터페이스와 루프백 디바이스이며, 외부 네트워크를 통한 직접적인 접근은 존재하지 않습니다. 요약하면, 공격자는 로컬 특권을 확보한 뒤 악의적인 BPF 코드를 실행해야 하며, 그 전제조건이 충족되지 않으면 이 취약점은 실질적으로 이용되기 어렵습니다.

💥 영향 분석

  • 커널 로그에 반복적인 “skb_warn_bad_offload” 메시지가 쌓이며 관리자는 네트워크 성능 저하를 오인할 수 있습니다.
  • GSO(General Segmentation Offload) 기능이 비활성화돼 대량 트래픽 처리 효율이 감소하고, 서비스 레이턴시가 상승합니다.
  • 직접적인 원격 코드 실행은 없지만, 지속적인 offload 비활성화는 DoS 성격의 가용성 저하를 초래할 수 있습니다.

🔗 관련 취약점·체이닝

유사하게 GSO‑type 검증 부재가 존재하는 과거 커널 버그와 결합하면, 오프로드 비활성화 후 메모리 손상 버그 등을 이용해 권한 상승이나 추가 DoS 공격으로 연계될 가능성이 있습니다. (구체적 CVE 번호는 확인되지 않음)

🔎 탐지

  • 로그 지표

    • dmesg 혹은 /var/log/kern.log"skb_warn_bad_offload" 문자열이 포함된 레코드가 기록됨(필드: message).
    • auditd 이벤트 type=1300 (bpf program load)와 동시에 syscall=clone 또는 netlink RTM_NEWLINK 가 발생하면 의심.
  • SIEM 쿼리 예시 (Splunk/Elastic 스타일)

    text
    1index=kernel_logs sourcetype=kern.log "skb_warn_bad_offload"
    2| stats count by host, _time
    3| where count > 5
    text
    1index=audit_events eventid=1300 msg="bpf_clone_redirect"
    2| join host [search index=kernel_logs "skb_warn_bad_offload"]
    3| table host,_time,msg
  • 정규식 / 의사코드

    xss
    1if re.search(r"skb_warn_bad_offload", log.message):
    2 alert("Malformed GSO packet from eBPF")
  • 오탐 튜닝

    • 개발·테스트 서버에서 정상적인 BPF 테스트가 수행되는 경우 host 혹은 process 레이블을 화이트리스트에 추가.
    • 단일 이벤트만 발생하거나 짧은 시간(예: 10분) 내 재발하지 않을 경우 “low severity” 로 분류하고, 동일 호스트에서 일정 기간 내 다중 발생 시 알림 단계 상승.

🛡️ 완화 방안

  • 즉시(긴급 차단)
    sysctl kernel.unprivileged_bpf_disabled=1 로 비특권 사용자의 eBPF 프로그램 로드를 차단합니다.

    • 난이도: 낮음, 운영 영향: 일부 개발·테스트 워크로드 제한 가능 → 사전 공지 필요.
    • 검증: sysctl -a | grep unprivileged_bpf_disabled 로 값이 1 인지 확인하고, eBPF 프로그램 로드 시 “Operation not permitted” 오류가 발생하는지 테스트합니다.
  • 단기(완화)

    1. SELinux/AppArmor 정책을 수정해 bpf_clone_redirect 가 루프백(lo) 외 인터페이스로 패킷을 전송하는 것을 차단합니다.
      • 난이도: 중간, 운영 영향: 정책 적용 전 테스트 필요, 서비스 재시작 없이 적용 가능.
      • 검증: /var/log/audit/audit.log 에 차단 이벤트가 기록되는지 확인.
    2. sysctl net.core.bpf_jit_disable=1 로 BPF JIT 컴파일을 비활성화합니다.
      • 난이도: 낮음, 운영 영향: 대부분 환경에서 성능 저하 미미.
      • 검증: sysctl net.core.bpf_jit_disable 값 확인 및 커널 로그에 “BPF JIT disabled” 메시지 존재 여부 확인.
  • 근본(해결)
    패치가 포함된 최신 커널 버전으로 업그레이드합니다. 지원 범위는 5.6‑5.10.249, 5.11‑5.15.199, 5.16‑6.1.162, 6.2‑6.6.122, 6.7‑6.12.68, 6.13‑6.18.2 중 최신 마이너 릴리즈 적용이 권장됩니다.

    • 난이도: 높음, 운영 영향: 재부팅 및 호환성 테스트 필요 → 일시적 가용성 저하.
    • 검증: uname -r 로 커널 버전 확인 후, dmesg | grep "gso: validate gso_type" 로 패치 적용 여부를 검증합니다.
  • 잔여 리스크
    위 조치를 모두 적용해도 향후 다른 경로에서 GSO‑type 검증 누락이 발생할 가능성이 있습니다. 따라서 정기적인 커널 보안 업데이트와 eBPF 프로그램 검증 프로세스를 운영에 포함시키는 것이 필요합니다. EPSS 0.00168(실측 악용 확률)과 CVSS 5.5(중간 위험도)를 고려하면, 즉시 차단 후 패치 적용을 순차적으로 진행하는 것이 최적의 대응 전략입니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…