[공격] 분석 — CVE-2024-56703
A race condition in the Linux kernel's IPv6 routing (fib6_select_path) can trigger an infinite loop leading to a system panic, requiring kernel updates or BGP route stability monitoring.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00207 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: 고도로 동적인 환경에서 bird와 같은 서비스가 BGP-advertised routes를 지속적으로 업데이트하여 next hop churn이 발생할 때, IPv6 트래픽 처리를 위한 fib6_select_path 함수 내 multipath circular linked-list 순회 중 노드가 동시에 삭제되면 무한 루프가 트리거됨.
(2) 공격 단계:
- 정찰: 타겟 시스템의 커널 버전 및 IPv6 라우팅 설정, BGP 서비스(
bird등) 사용 여부 확인. - 초기 접근: 로컬 권한 획득 또는 네트워크 경로 설정을 변경할 수 있는 관리자 권한 필요(AV:L / PR:L).
- 실행: 대량의 IPv6 트래픽을 유발함과 동시에 BGP nexthop 목적지를 빈번하게 변경하여 Race Condition 유도.
- 영향:
fib6_siblings리스트의 'next'/'previous' 포인터가 자기 자신을 가리키게 되어 무한 루프 발생 $\rightarrow$ CPU 점유율 100% $\rightarrow$ Watchdog timer에 의한 System Panic(DoS).
(3) 공격 표면: Linux Kernel IPv6 Routing Table (FIB),fib6_select_path함수, BGP 라우팅 업데이트 인터페이스.
(4) CVSS 벡터 연결:AV:L/PR:L은 공격자가 이미 시스템에 로그인했거나 로컬 설정 변경 권한이 있어야 함을 의미하며,UI:N은 사용자 개입 없이 트리거됨을 뜻함. 즉, 외부 네트워크 패킷만으로는 불가능하며 내부 경로 설정 제어권이 전제되어야 함.
악용 가능성: 본 취약점은 AV:L/PR:L 벡터가 시사하듯, 공격자가 이미 시스템에 최소 권한의 로컬 계정을 확보했거나 내부 네트워크에서 커널 수준의 영향을 미칠 수 있는 전제조건이 필요하여 공격 난이도가 Hard로 판정됩니다. 실제 공격 표면은 Linux 커널의 IPv6 라우팅 테이블 관리 함수인 fib6_select_path이며, 특히 BGP와 같은 동적 라우팅 프로토콜을 통해 nexthop 정보가 빈번하게 변경되는 고부하 네트워크 환경이 트리거 조건입니다. 공격자는 다중 경로(multipath) 순환 연결 리스트의 노드가 다른 코어에서 동시에 삭제되도록 유도하여 커널의 Soft Lockup 상태를 유발하는 Race Condition을 악용할 수 있습니다. EPSS 점수가 0.00207로 매우 낮고 KEV에 등재되지 않은 점은, 일반적인 서버 환경보다는 특정 조건(Edge Router 및 고동적 IPv6 트래픽)을 갖춘 인프라에서만 제한적으로 실현됨을 의미합니다. 결과적으로 이 취약점은 원격 코드 실행(RCE)보다는 시스템 가용성을 완전히 무너뜨리는 서비스 거부(DoS) 공격으로 악용될 가능성이 매우 높습니다.
💥 영향 분석
(1) 기술적 위험: 시스템 가용성 완전 상실. 커널 레벨의 Soft Lockup으로 인한 전체 시스템 Panic 및 재부팅 발생 (DoS).
(2) 비즈니스 영향: Edge Router 등 네트워크 핵심 인프라에서 발생 시 서비스 전체 중단 및 대규모 네트워크 장애 유발. 고가용성(HA) 구성이 안 된 경우 복구까지 상당한 다운타임 발생.
🔗 관련 취약점·체이닝
- 추정: 로컬 권한 획득 취약점 $\rightarrow$ CVE-2024-56703 (DoS). 일반적인 RCE나 권한 상승(LPE) 이후, 시스템을 완전히 무력화하여 포렌식 흔적을 지우거나 서비스 거부를 유도하는 체이닝 가능.
- 추정: CWE-824 (Out-of-bounds Read/Write) 또는 Race Condition 유형의 다른 커널 결함과 결합하여, 단순 DoS를 넘어 메모리 오염 상태에서 특정 조건의 무한 루프를 유도해 커널 패닉을 정교하게 제어하는 패턴 가능.
🔎 탐지
(1) 로그 지표: dmesg 또는 /var/log/syslog 내 "soft lockup", "watchdog: BUG: soft lockup - CPU#", "fib6_select_path" 관련 스택 트레이스 확인.
(2) 탐지 규칙:
- 로직 1:
CPU usage == 100%ANDprocess == ksoftirqd(또는 커널 스레드) 지속 발생 모니터링. - 로직 2:
dmesg | grep -E "soft lockup|fib6_select_path"$\rightarrow$ 즉시 경고. - 로직 3: BGP 업데이트 빈도 임계값 초과 탐지 (
BGP Update Rate > Thresholdper second).
(3) 오탐 시나리오 및 튜닝: 정상적인 대규모 네트워크 토폴로지 변경 시 CPU 일시 상승 가능. 단순 CPU 사용량이 아닌, 커널 패닉 직전의soft lockup메시지와 BGP 업데이트 빈도를 결합하여 탐지 정밀도 상향.
🛡️ 완화 방안
- 즉시(긴급 차단): 불필요한 IPv6 라우팅 기능 비활성화 또는 BGP 업데이트 빈도 제한(Route Flap Damping 설정). (난이도: 하 / 영향: 네트워크 수렴 속도 저하)
- 단기(완화): RCU primitives가 적용된 최신 커널로의 롤링 업데이트 준비 및 시스템 Watchdog 타이머 설정 최적화. (난이도: 중 / 영향: 서비스 일시 중단 가능성)
- 근본(해결): 영향받는 버전(4.15~6.12.2 등)에서 수정된 커널 버전으로 업그레이드.
fib6_select_path내 RCU API 적용 패치 확인. (난이도: 중 / 영향: 재부팅 필요, 가용성 검증 필수)
[파이프라인 근거] 본 분석은 다중 소스 데이터의 일관성이 확인된 교차검증 결과를 바탕으로 하며, 실측 EPSS 0.00207(백분위 0.1104) 수치를 통해 실제 악용 가능성이 매우 낮음(hard)을 인지함. 따라서 CVSS 5.5와 non-KEV 상태를 근거로 우선순위를 'monitor'로 결정하여 보고함.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00207 · exploit=hard · in_scope=None