Kestrel
CVE-2025-71097DGX_A· 2026년 8월 1일 AM 02:29

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

CVE-2025-71097 allows an unprivileged local user to trigger a reference‑count leak in IPv4 routing by deleting a nexthop used by blackhole routes, leading to device cleanup failure and potential denial‑of‑service on affected Linux kernels.

📋 요약

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

🔍 공격 기법

  • 공격 표면: ip/netlink 명령을 통한 IPv4 라우팅 설정 API (ip link add, ip nexthop add/del, ip route add blackhole … nhid).
  • 전제 조건: 로컬 접근 권한(L) 및 낮은 난이도(AC:L, PR:L). 컨테이너 등 네임스페이스 내부에서 CAP_NET_ADMIN 권한을 가진 프로세스가 필요하지만, 이는 일반적인 멀티‑테넌트 환경에서는 비특권 사용자에게 부여될 수 있음.
  • 정찰: uname -r 로 커널 버전 확인 → 취약 범위(5.3.1 ~ 6.18.4) 내에 있는지 판단.
  • 초기 접근·실행 단계
    1. ip link add name dummyX up type dummy 로 더미 인터페이스 생성.
    2. ip nexthop add id <id> dev dummyX 로 nexthop 객체 생성.
    3. ip route add blackhole <IP>/32 nhid <id> 로 오류 라우트(blackhole)와 nexthop 연결.
    4. ip nexthop del id <id> 로 nexthop 삭제 → 내부 플래그는 dead으로 표시되지만, fib_table_flush()flush_all=true 상황이 아니면 오류 라우트를 정리하지 않음.
  • 지속·영향 단계: 삭제된 nexthop에 대한 참조가 남아 dev dummyX 의 사용 카운트가 감소되지 않아 unregister_netdevice 가 블록됨. 반복 수행 시 커널 객체 레퍼런스 누적으로 메모리 고갈, 장치 정리 실패, 최악의 경우 커널 패닉(DoS) 발생.

악용 가능성: AV:L·AC:L·PR:L·UI:N 벡터는 공격자가 로컬 시스템에 낮은 권한(Low)만 있으면, 복잡도 없이(Low) 사용자 개입 없이(N) 취약점을 이용할 수 있음을 의미합니다. 실제로 이 결함은 ip route/ip nexthop 명령이 내부적으로 사용하는 Netlink 인터페이스를 통해 트리거되며, fib_table_flush() 가 오류 라우트(blackhole 등)를 삭제하지 않아 남아 있는 넥스탭 객체에 대한 레퍼런스가 누수됩니다. 공격 표면은 ① Netlink 소켓을 통한 라우팅 설정 API, ② nexthop del 명령에 전달되는 ID 파라미터, 그리고 ③ 커널 내부의 fib_table_flush() 함수이며, 이들 모두 로컬 프로세스가 접근 가능한 엔드포인트입니다. EPSS = 0.00114 은 현재까지 실제 악용 사례는 드물지만(KEV 미등재), 낮은 복

💥 영향 분석

  • 직접적 위험: 로컬 사용자에 의한 Device Cleanup Failure → unregister_netdevice: waiting for <dev> to become free. Usage count = X 로그와 함께 네트워크 인터페이스가 해제되지 않아 시스템 전반의 네트워크 기능 마비.
  • 간접적 위험: 누적된 레퍼런스는 커널 메모리 파편화를 가속화하고, 심각한 메모리 고갈 시 Kernel Panic 또는 서비스 중단을 초래할 수 있음(특히 공유 호스트 커널을 사용하는 컨테이너 환경).

🔗 관련 취약점·체이닝

  • 동일 계열: IPv4 라우팅 경로 관리에서 레퍼런스 카운트 누수가 발생하는 다른 CVE(예: CVE‑2022‑XXXX)와 유사한 메모리 고갈 패턴.
  • 잠재적 체이닝: 추정: 레퍼런스 누수에 의해 특정 slab 캐시(sk_buff)가 비정상적으로 증가하면, 이후 UAF(Use‑After‑Free) 또는 Heap Spraying 취약점과 결합해 권한 상승(RCE)으로 전이될 가능성이 있음. 현재 이 CVE 자체만으로는 RCE를 제공하지 않으며, 추가 메모리 손상 버그와의 연계가 필요함(※ 추정).

🔎 탐지

  • 커널 로그: unregister_netdevice: waiting for <dev> to become free 와 함께 사용 카운트가 2 이상인 경우 경고.
  • Auditd / Netlink 모니터링: netlink=NETLINK_ROUTE 이벤트에서 ip route add blackhole … nhid 후 즉시 ip nexthop del id 가 발생하는 패턴을 감시.
  • 시스템 메트릭: /proc/net/dev 에서 인터페이스 상태가 UP 이면서도 operstate=down 로 전환되지 않는 경우, 혹은 netstat -i 로 확인되는 비정상적인 사용 카운트 증가 추적.

🛡️ 완화 방안

  • 패치 적용: 해당 커널 라인(5.3.1 ~ 6.18.4)에서 upstream 패치를 적용하여 nexthop이 dead 상태가 되면 오류 라우트를 강제 플러시하도록 업데이트.
  • 버전 업그레이드: 가능한 경우 최신 장기 지원(LTS) 커널(≥ 6.19)으로 교체.
  • 권한 제한: 컨테이너 및 비특권 사용자에 대해 CAP_NET_ADMIN 권한을 차단하거나, 네임스페이스 내부에서 ip route add blackhole … nhid 와 같은 명령어 실행을 sysctl(net.ipv4.conf.all.route_localnet=0) 등으로 제한.
  • 운영 정책: 불필요한 더미 인터페이스와 blackhole 라우트 사용을 금지하고, 네트워크 설정 변경 시 리뷰 절차를 도입.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…