[단독공격] 분석 — CVE-2025-21682
CVE-2025-21682 is a local kernel privilege escalation in the bnxt driver triggered by detaching an XDP program, and immediate kernel update or disabling XDP on affected NICs mitigates the risk.
📋 요약
- 심각도 high · CVSS 7.3 · EPSS 0.00217 · 악용난이도 hard
🔍 공격 기법
-
공격 표면
bnxt드라이버가 로드된 네트워크 인터페이스(예: eth0)ip link set dev <if> xdp obj <bpf.o> sec <section>로 XDP BPF 프로그램을 로드할 수 있는 CAP_NET_ADMIN 권한(일반 사용자도 sudo 없이 얻을 수 있는 경우 존재)
-
트리거 조건
- 공격자는 대상 시스템에 로그인하고,
ip link set dev eth0 xdp obj malicious.bpf.o sec xdp로 임의 BPF 오브젝트를 로드한다. - 바로 이어서
ip link set dev eth0 xdp off명령을 실행해 XDP 를 해제한다. - bnxt 드라이버는 XDP 해제 시 HW‑GRO 상태 재계산 과정에서 null pointer dereference 가 발생하고, 커널 패닉 혹은 메모리 손상을 일으킨다.
- 공격자는 대상 시스템에 로그인하고,
-
단계별 공격 흐름
- 정찰:
ethtool -i eth0로 드라이버 이름 확인 →bnxt_en여부 판단. - 초기 접근: 일반 사용자 계정으로 로그인(원격 또는 물리적).
- 실행·권한 획득: 위 트리거를 이용해 커널 OOPS 발생, 이후 use‑after‑free 혹은 stack pivot 를 통한 루트 쉘 확보 (공식 PoC 미상하지만 기존 커널 로컬 권한 상승 패턴과 동일하게 활용 가능).
- 지속:
systemd서비스 파일에 악성 BPF 로드 스크립트를 삽입하거나,/etc/rc.local에 XDP 로드 명령을 영구화. - 영향: 루트 권한 획득 → 데이터 탈취·파괴·내부망 이동 가능.
- 정찰:
-
CVSS 벡터와 실제 조건 매핑
- AV:L → 로컬 접근, 공격자는 시스템에 직접 로그인해야 함.
- AC:L → 명령어 두 줄(
ip link set … xdp obj/off)만으로 충분히 트리거 가능. - PR:L → CAP_NET_ADMIN 권한(일반 사용자에게 부여될 경우)만 필요.
- UI:N → 사용자 상호작용 없이 스크립트 실행 가능.
악용 가능성: 이 취약점은 AV:L / AC:L / PR:L / UI:N 로 평가된 바와 같이, 공격자는 로컬 시스템에 직접 접근할 수 있어야 하며 특별한 복잡도 없이 ip link set dev … xdp 명령을 실행해 XDP 프로그램을 장착·제거하면 된다. 프리빌리지 요구가 Low인 이유는 XDP 설정이 일반 사용자에게는 CAP_NET_ADMIN 권한만 있으면 가능하기 때문이며, 사용자의 직접적인 행동(UI:N)은 필요하지 않다. EPSS = 0.00217(0.217 %)이라는 매우 낮은 실측값과 KEV 미등재는 현재까지 공개된 공격 사례가 거의 없으며, 실제 환경에서 악용될 가능성이 이론적 심각도와 별개로 제한적임을 의미한다. 트리거 조건은 “XDP를 해제한 뒤 netdev_update_features() 가 호출되는 시점”이며, 노출된 공격 표면은 ip link 명령어, netlink 인터페이스 및 드라이버 내부의 bnxt XDP 처리 루틴이다. 공격자는 이 경로를 이용해 특수히 조작된 XDP 오프로드 설정을 삽입·제거함으로써, 드라이버가 null‑dereference 를 일으키게 할 수 있지만, 이는 XDP 기능이 활성화된 네트워크 인터페이스에 대한 로컬 권한이 전제된다. 따라서 공격 난이도는 Hard이며, 실제 악용 가능성은 낮지만 로컬 권한을 가진 사용자가 XDP 설정을 남용할 경우 발생 가능한 시나리오임을 인식해야 한다.
💥 영향 분석
- 성공 시 커널 패닉이 발생해 서비스 거부(Denial‑of‑Service)와 동시에 커널 메모리 손상을 이용한 루트 권한 상승이 가능.
- 공격자는 시스템 전체 파일·프로세스 접근, 네트워크 트래픽 가로채기, 기타 내부 인프라 침투에 활용할 수 있다.
🔗 관련 취약점·체이닝
- 본 결함은 NULL‑Dereference 로 시작하지만, 커널 메모리 손상 후 일반적인 use‑after‑free / arbitrary write 패턴과 연계될 가능성이 높다.
- 유사한 로컬 권한 상승 CVE(예: CVE‑2024‑XXXX)에서 보여지는 BPF → 커널 오프젝트 조작 체인이 적용될 수 있다(추정).
- 따라서 BPF verifier 우회 혹은 CAP_NET_ADMIN 남용과 결합하면 기존 로컬 권한 상승 체인에 쉽게 삽입 가능하다.
🔎 탐지
dmesg·/var/log/kern.log에서"bnxt"와 함께 null pointer dereference, BUG: unable to handle kernel paging request 메시지가 기록되는 경우.auditd로그에서ip link set dev * xdp obj *.bpf.o혹은xdp off명령이 비특권 사용자에 의해 실행된 이벤트.- 시스템 모니터링 툴에서 HW‑GRO 상태가
off → on으로 급변하는 패턴(예:ethtool -k eth0 | grep gro)을 감시.
🛡️ 완화 방안
- 즉시 조치: 해당 커널 버전(4.16 ~ 6.12.11) 사용 중이라면, 배포판에서 제공하는 최신 패치를 적용하거나
bnxt드라이버를 6.13 이상으로 업그레이드한다. - 임시 방편: bnxt NIC 에 대해 XDP 기능을 비활성화(
sysctl -w net.core.bpf_jit_disable=1및 인터페이스별ethtool -K eth0 gro off)하고, CAP_NET_ADMIN 권한을 최소화한다. - 근본 해결: 배포판 보안 업데이트를 정기적으로 적용하고, SELinux/AppArmor 로 BPF 로드와 XDP 설정에 대한 정책 제한을 강화한다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.3 · non-KEV · EPSS=0.00217 · exploit=hard · in_scope=None