[방어] 분석 — CVE-2025-68363
A kernel‑level BPF helper misuse can trigger a WARN_ON_ONCE and potential null‑pointer dereference when untrusted BPF programs call bpf_skb_check_mtu with BPF_MTU_CHK_SEGS, so immediate restriction of BPF program loading is the top mitigation.
📋 요약
- 심각도 미상 · CVSS 미상 · EPSS 0.0018 · 악용난이도 hard
🔍 공격 기법
Linux 커널의 bpf_skb_check_mtu 헬퍼가 skb->transport_header 가 설정되지 않은 상태에서 BPF_MTU_CHK_SEGS 플래그와 함께 호출될 때, WARN_ON_ONCE 가 발생하고 NULL‑pointer dereference 로 이어질 수 있다.
악용 흐름은 다음과 같다.
- 공격자는 CAP_BPF / CAP_SYS_ADMIN 권한을 가진 프로세스(예: 컨테이너 내부)에서 BPF 프로그램을 로드한다.
- 해당 프로그램이
bpf_skb_check_mtu(skb, ifindex, &mtu_len, 0, BPF_MTU_CHK_SEGS)를 호출한다. skb->gso_size가 설정돼 있고CONFIG_DEBUG_NET이 활성화된 경우, 커널은skb_transport_header_was_set()검사를 수행하지 않아 WARN_ON_ONCE 로 경고를 남기며, 잘못된 포인터 접근으로 커널 패닉(DoS) 혹은 메모리 레이아웃 조작을 통한 권한 상승(LPE)이 가능해진다.
악용 가능성: 이 취약점은 AV가 Network(네트워크) 이며, 실제로는 bpf_prog_test_run 시스템 콜을 통해 로컬 커널에 접근해야 하므로 원격 공격이 불가능합니다. AC는 High 로 평가되는데, 성공하려면 CONFIG_DEBUG_NET 활성화와 skb->gso_size 설정이라는 두 가지 사전 조건을 동시에 만족시켜야 하고, BPF_MTU_CHK_SEGS 플래그가 포함된 BPF 프로그램을 로드해야 합니다. PR은 High 이며, bpf_prog_test_run 시스템 콜은 CAP_SYS_ADMIN 권한이 필요하므로 일반 사용자 계정으로는 이용할 수 없습니다; UI는 None 으로, 사용자의 직접적인 상호작용 없이도 트리거될 수 있습니다. EPSS 값이 0.0018 로 매우 낮음에도 불구하고 실제 위협으로 간주되는 이유는, 비록 관측된 악성 활용 사례가 없고 KEV에 등
💥 영향 분석
- 서비스 가용성: 커널 패닉에 의해 해당 호스트가 재부팅될 수 있어 DoS 효과를 낼 수 있다.
- 권한 상승: 메모리 레이아웃을 조작할 경우 SMEP/SMAP 우회를 시도해 루트 권한을 획득할 가능성이 있다(동료 의견에 근거).
- 데이터 무결성: 패킷 처리 경로에서 비정상 종료가 발생하면 네트워크 트래픽 손실 및 세션 파괴가 일어날 수 있다.
🔗 관련 취약점·체이닝
- BPF 프로그램 로드 권한 남용 (CAP_BPF, CAP_SYS_ADMIN) → 커널 내부 구조 오용
- GSO/TSO 설정 오류와 결합된
skb->transport_header미설정 상황 → Null‑pointer dereference
🔎 탐지
-
커널 로그 –
/var/log/kern.log,dmesg에서 다음 패턴을 모니터링- 정규식:
^WARNING: CPU:\s*\d+\s+PID:\s*\d+.*bpf_skb_check_mtu.*$ - 필드:
message,kernel_timestamp
- 정규식:
-
BPF 프로그램 테스트 실행 –
bpf_prog_test_run()호출 결과에 오류가 반환되는 경우- SIEM 쿼리 예시 (Elastic Kibana DSL)
1{ 2 "bool": { 3 "must": [ 4 { "match_phrase": { "message": "bpf_prog_test_run" } }, 5 { "match_phrase": { "message": "error" } } 6 ], 7 "filter": [ 8 { "range": { "@timestamp": { "gte": "now-5m" } } } 9 ]10 }11}-
Auditd –
bpf시스템 콜 로드 감시- 규칙:
auditctl -a always,exit -F arch=b64 -S bpf -F a0=2 -k bpf_load(a0=2은 BPF_PROG_LOAD) - 탐지 룰:
msg.type=SYSCALL and syscall=bpf and a0=2 and exe!=/usr/sbin/trusted-bpf-loader
- 규칙:
-
오탐 튜닝
- 정상적인 네트워크 모니터링 도구가
bpf_prog_test_run을 사용할 경우,exe필드로 화이트리스트를 적용한다. - WARN_ON_ONCE 로그는
CONFIG_DEBUG_NET비활성화 시 사라지므로, 해당 옵션이 꺼져 있는 시스템에서는 경고 기반 탐지를 비활성화하도록 필터링한다.
- 정상적인 네트워크 모니터링 도구가
🛡️ 완화 방안
-
CAP_BPF / CAP_SYS_ADMIN 최소화
- 호스트와 컨테이너에 대해 권한 경계 정책을 강화하고, 필요 시
sudo/setcap로 제한한다. - 난이도: ★★☆☆☆, 영향: 기존 관리 작업에 추가 승인 절차 발생.
- 호스트와 컨테이너에 대해 권한 경계 정책을 강화하고, 필요 시
-
GSO 비활성화 (가능한 경우)
- 인터페이스별
ethtool -K eth0 gso off로skb->gso_size설정을 방지한다. - 난이도: ★☆☆☆☆, 영향: 네트워크 성능 저하(특히 대역폭 높은 환경).
- 인터페이스별
-
DEBUG_NET 비활성화 (운영 시스템에선 기본 비활성)
- 커널 부팅 옵션에서
debug_net=0로 설정해 WARN_ON_ONCE 로그 자체를 억제한다(감시 목적이 아니라 임시 회피용).
- 커널 부팅 옵션에서
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=미상 · non-KEV · EPSS=0.0018 · exploit=hard · in_scope=None