[공격] 분석 — CVE-2025-21682
CVE-2025-21682 allows a local low‑privilege attacker to trigger a null‑dereference in the bnxt driver by detaching XDP, leading to kernel panic and possible confidential data exposure; apply the upstream kernel/bnxt patches immediately and temporarily disable HW‑GRO offload on affected interfaces.
📋 요약
- 심각도 high · CVSS 7.3 · EPSS 0.00217 · 악용난이도 hard
🔍 공격 기법
-
공격 전제
- 로컬 계정이 존재하고
ip,ethtool등 네트워크 설정 명령을 실행할 수 있음 (CAP_NET_ADMIN 수준, CVSS PR:L). - 시스템에 Broadcom NetXtreme(bnxt) NIC가 장착되어 있고 커널 버전이 4.16‒6.12.11 사이임.
- 로컬 계정이 존재하고
-
정찰
ethtool -i <iface>로 드라이버 이름을 확인 → “bnxt”.ip link show로 XDP를 지원하는 인터페이스 목록 열람.
-
초기 접근·트리거
ip link set dev <iface> xdp obj dummy.bpf.o sec xdp로 임시 XDP 프로그램을 장착.- 바로 뒤에
ip link set dev <iface> xdp off로 XDP를 해제.
- 이 과정에서 bnxt 드라이버는
netdev_update_features()를 호출하고, HW‑GRO 상태 재계산 로직이 잘못돼 내부 포인터가 NULL 로 남아 null‑dereference 가 발생함.
-
실행·권한 획득
- Null‑dereference → 커널 OOPS/패닉 → 시스템 비정상 종료(DoS).
- OOPS 로그에 커널 주소와 스택 정보가 출력될 경우, 공격자는 이를 수집해 정보 유출(C:H) 이 가능하고, 다른 메모리 손상 취약점과 결합하면 권한 상승으로 이어질 여지가 있음 (CVSS C:H / I:L).
-
지속·영향
- 서비스가 반복적으로 패닉에 빠지면 가용성(A:H) 저하와 자동 재부팅 루프 발생.
- 로그 수집 환경에서 OOPS 정보를 외부로 전송하면 기밀 정보 유출 위험이 확대됨.
-
CVSS ↔ 실제 조건 매핑
- AV:L → 로컬만 공격 가능, 네트워크 경계 밖에서는 이용 불가.
- AC:L → 명령 실행 난이도 낮음, 단순
ip link호출만으로 트리거. - PR:L → 일반 사용자 권한(CAP_NET_ADMIN) 정도면 충분.
- UI:N → 자동화된 스크립트로 무인 실행 가능.
악용 가능성: 이 취약점은 AV:L(로컬), AC:L(낮은 복잡도), PR:L(저권한) 조건만 충족하면 공격이 가능하므로, 동일 머신에 로그인한 일반 사용자라도 ip link set dev <iface> xdp obj … 명령을 실행할 수 있는 경우(예: CAP_NET_ADMIN 권한이 부여된 컨테이너나 제한적 sudo 정책) 바로 활용될 수 있습니다.
공격 표면은 XDP 프로그램의 로드·해제와 그에 연계되는 netdev_update_features() 함수 호출이며, 이 과정에서 드라이버가 HW‑GRO 플래그를 재설정하지 못하고 NULL 포인터를 역참조하게 됩니다.
실제 공격은 XDP 오브젝트를 임의로 교체하거나 해제한 뒤, 시스템이 자동으로 netdev_update_features() 를 호출하도록 트리거(예: 네트워크 인터페이스 재구성, VLAN 추가/삭제 등)하면 발생합니다.
EPSS 0.00217이라는 매우 낮은 실측 위험도와 KEV 미등재는 현재까지 보고된 악용 사례가 거의 없음을 의미하지만, 로컬 권한만으로 조건을 만족할 경우 이론적 난이도가 ‘hard’로 평가되는 이유는 NULL‑dereference 에 의해 커널 패닉이나 서비스 거부(DoS) 수준의 심각한 영향을 즉시 낼 수 있기 때문입니다.
따라서 공격자는 “XDP 프로그램 로드 → 인터페이스 재구성 → netdev_update_features() 호출” 순서를 자동화하거나 스크립트화해, 대상 시스템을 지속적으로 불안정하게 만들 수 있습니다.
이와 같은 흐름은 별도의 권한 상승이나 원격 접근 없이도 로컬 사용자 수준에서 실행 가능하므로, 실제 위협 시나리오에서는 ‘쉽게 재현 가능한 DoS’ 로 평가됩니다.
💥 영향 분석
- 핵심 위험: bnxt 드라이버의 null‑dereference 로 인한 커널 패닉 → 서비스 거부(DoS).
- 보조 위험: OOPS 로그에 노출되는 커널 주소·스택 정보가 기밀 데이터(C:H)로 활용될 가능성.
- 범위: Linux kernel 4.16‒6.12.11 전체, bnxt NIC를 사용하는 모든 서버·컨테이너.
🔗 관련 취약점·체이닝
- CWE‑476 (Null Pointer Dereference) 와 CWE‑362 (Race Condition) 가 결합돼 재구성 중 경쟁 상태가 발생함.
- 추정: 동일 환경에서 메모리 손상 기반 권한 상승(CVE)과 연계하면
OOPS → 주소 유출 → 권한 상승체인이 가능할 수 있음(실제 CVE 번호는 확인되지 않음).
🔎 탐지
dmesg·journalctl -k에 “bnxt: null pointer dereference”, “Oops”, “Kernel panic” 문자열이 기록되는지 실시간 모니터링.auditd규칙으로netlink→RTM_NEWLINK(XDP 장착) 및RTM_DELLINK(XDP 해제) 이벤트를 감시하고, 비정상적인 호출 빈도 변화를 알림.ethtool -k <iface>출력에서 XDP off 후에도rx-gro-hw: on상태가 지속되는 경우 재계산 오류 징후로 기록.
🛡️ 완화 방안
-
즉시 조치
- 배포판이 제공하는 최신 커널/bnxt 패치를 즉시 적용(패치 포함 커밋 98ba1d931f61 이상).
- 영향을 받는 인터페이스에 대해 XDP 사용을 금지하고,
ethtool -K <iface> gro off로 HW‑GRO 오프로드를 비활성화 (임시 완화).
-
장기 대책
- 시스템 이미지 빌드 단계에서 bnxt → XDP 옵션을 기본 비활성화하고, 보안 업데이트 주기를 최소 30일 이내로 유지.
- 커널 패닉 발생 시 자동 재부팅을 방지하도록
kernel.panic값을 조정하고, OOPS 로그를 중앙 SIEM에 연동해 신속 대응.
우선순위 근거: 교차검증 결과 다중 소스에서 동일 취약점이 확인됐으며(보수적 high), EPSS 0.00217(실측 악용 확률 낮음)에도 불구하고 CVSS 7.3·A:H·C:H 로 가용성·기밀성 위험이 크므로 “scheduled (이번 주 내)” 대응을 권고합니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.3 · non-KEV · EPSS=0.00217 · exploit=hard · in_scope=None