[공격] 분석 — CVE-2025-71097
A local reference count leak in IPv4 error routes allows a privileged user to induce kernel resource exhaustion and DoS, requiring monitoring of network configuration commands on affected kernels.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00114 · 악용난이도 hard
🔍 공격 기법
이 취약점은 Linux 커널의 ipv4 스택에서 nexthop 객체 삭제 시 특정 경로(error routes)가 적절히 flush되지 않아 발생하는 Reference Count Leak이다.
-
공격 표면 및 트리거:
- 노출 지점: IPv4 라우팅 설정 인터페이스 (
rtnetlink). - 트리거 조건:
nexthop객체를 생성하고, 이를 참조하는 일반 경로와 에러 경로(blackhole 등)를 동시에 생성한 뒤, 해당nexthop을 삭제할 때 발생한다. - 결함 원리:
fib_table_flush()함수가 네트워크 네임스페이스 해체(flush_all=true) 상황이 아니면 에러 경로를 flush하지 않는다. 이로 인해nexthop객체가 'dead' 상태가 되어도 에러 경로가 여전히 참조를 유지하여 Reference Count가 0이 되지 않는다.
- 노출 지점: IPv4 라우팅 설정 인터페이스 (
-
공격 체인 및 전제 조건:
- 초기 접근/권한 (PR:L): CVSS 벡터
AV:L/PR:L에서 보듯, 로컬 접근 권한과 네트워크 설정을 변경할 수 있는 권한(예:CAP_NET_ADMIN)이 전제되어야 한다. - 정찰 및 설정: 대상 시스템의 커널 버전이 영향 범위(
5.3.1~6.18.4등 광범위함)에 있는지 확인한다. - 리소스 누수 유도 (실행):
ip nexthop add$\rightarrow$ip route add [일반경로] nhid X$\rightarrow$ip route add blackhole [에러경로] nhid X순으로 구성.- 이후
ip nexthop del id X를 실행하여 leak을 발생시킨다.
- 영향 (DoS): 위 과정을 반복하여 커널 메모리 내의
nexthop및 관련 네트워크 디바이스 객체가 해제되지 않도록 고립시킨다. 특히ip link del시도 시unregister_netdevice: waiting for ... to become free메시지와 함께 인터페이스 삭제가 불가능한 상태(Zombie device)가 된다.
- 초기 접근/권한 (PR:L): CVSS 벡터
-
공격 난이도: EPSS 0.00114 및 악용 등급
hard판정은 이 취약점이 단순 실행으로 권한 상승을 일으키는 것이 아니라, 특정 권한을 가진 사용자가 정교하게 리소스를 고갈시켜야 하는 DoS 성격임을 뜻한다. 다중 소스 교차검증 결과 데이터 일관성이 확인되어 신뢰도는 높으나, 실측 악용 가능성은 낮게 평가된다.
악용 가능성: 본 취약점은 Linux 커널의 ipv4 스택 내 nexthop 객체 삭제 시 발생하는 Reference Count Leak으로, 공격 난이도는 Hard로 판정됩니다. AV:L 및 PR:L 벡터가 가리키듯, 공격자는 이미 시스템에 로그인하여 네트워크 설정을 변경할 수 있는 로컬 권한을 보유해야 하며, 이는 외부에서 즉시 트리거 가능한 원격 공격과는 거리가 <0xEB><0xA9><0x89>니다. EPSS 수치가 0.00114로 매우 낮고 KEV에 등재되지 않은 점은 실제 야생(In-the-wild)에서 이 단일 취약점만으로 시스템을 장악한 사례가 드물며, 공격 효율성이 낮음을 시사합니다. 주요 공격 표면은 ip route 및 ip nexthop 명령어를 통해 제어되는 커널의 FIB(Forwarding Information Base) 테이블과 fib_table_flush() 함수입니다. 구체적으로는 특정 nexthop ID를 공유하는 일반 경로와 Error Route(Blackhole 등)를 생성한 뒤, 해당 객체를 삭제하여 참조 횟수를 누적시키는 방식으로 트리거됩니다. 결과적으로 이 취약점은 단독으로 RCE나 권한 상승을 일으키기보다, 커널 메모리 내의 객체가 해제되지 않고 잔존하게 만드는 자원 고갈이나 Use-After-Free(UAF)를 유도하기 위한 기초 단계(Primitive)로 악용될 가능성이 큽니다. 따라서 공격자는 이를 다른 메모리 오염 취약점과 체이닝하여 커널 패닉을 유발하거나 권한 상승의 교두보로 활용하려 할 것입니다.
💥 영향 분석
- 가용성 침해 (DoS): 커널 내 네트워크 객체(nexthop, netdevice)의 참조 횟수가 누적되어 메모리 누수가 발생하며, 특정 네트워크 인터페이스를 삭제하거나 재설정하려는 시도가 영구적으로 블로킹된다.
- 시스템 불안정: 네트워크 설정 변경이 불가능해짐에 따라 컨테이너 환경이나 동적 라우팅 환경에서 서비스 장애가 유발될 수 있다.
🔗 관련 취약점·체이닝
본 취약점은 단독으로 권한 상승(LPE)을 일으키지는 않으나, 다음과 같은 체이닝 경로가 추정된다:
- 리소스 고갈 $\rightarrow$ 패닉/크래시: 추정: 누적된 reference leak이 커널 슬랩 메모리 압박으로 이어져 OOM(Out Of Memory) Killer를 유발하거나, 다른 race condition 취약점과 결합하여 Use-After-Free(UAF) 상태를 유도하는 전단계로 활용될 가능성이 있다.
- 권한 상승 체이닝: 추정:
CAP_NET_ADMIN권한을 이미 획득한 공격자가 시스템의 네트워크 관리 기능을 마비시켜 보안 솔루션의 통신을 차단하거나, 커널 상태를 불안정하게 만들어 다른 메모리 오염 취약점의 성공률을 높이는 환경 조성 용도로 사용될 수 있다.
🔎 탐지
- 커널 로그 모니터링:
dmesg또는/var/log/kern.log에서unregister_netdevice: waiting for [interface] to become free. Usage count = X패턴의 메시지가 반복적으로 발생하는지 확인한다. - 명령어 추적: 권한이 낮은 사용자가 짧은 시간 내에
ip nexthop add/del및ip route add blackhole명령을 반복 수행하는 행위를 감사(Audit)한다.
🛡️ 완화 방안
- 근본 해결: 영향받는 커널 버전에서 해당 패치가 적용된 최신 버전으로 업데이트한다. (IPv6는 영향 없음)
- 즉시 조치:
CAP_NET_ADMIN권한 부여를 최소화하고, 신뢰할 수 없는 사용자의 네트워크 설정 변경 명령 실행을 제한한다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00114 · exploit=hard · in_scope=None