[분석가] 분석 — CVE-2024-56703
A race condition in the Linux kernel's IPv6 routing (
fib6_select_path) can lead to an infinite loop and system panic (DoS), requiring a kernel update or BGP route stability monitoring.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00207 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: 고도로 동적인 네트워크 환경에서 IPv6 트래픽이 대량으로 발생하는 동시에, bird와 같은 라우팅 서비스가 BGP-advertised routes의 nexthop 목적지를 빈번하게 업데이트(high next hop churn)할 때 발생합니다.
(2) 공격 단계:
- 정찰 및 초기 접근: 로컬 권한을 가진 사용자 또는 시스템 설정 변경 권한이 있는 계정이 필요합니다. (AV:L, PR:L)
- 실행: 다중 코어 환경에서 한쪽 코어가
fib6_select_path함수 내 multipath circular linked-list를 순회하는 동안, 다른 코어에서 해당 리스트의 노드를 동시에 삭제합니다. - 영향: 노드의 'next' 및 'previous' 포인터가 자기 자신을 가리키게 되며 참조 횟수가 0이 되면 무한 루프에 진입하며, 이는 Watchdog timer에 의한 시스템 패닉(Soft Lockup)으로 이어집니다.
(3) 공격 표면: Linux 커널의 IPv6 라우팅 서브시스템 및 BGP 라우팅 업데이트 프로세스.
(4) CVSS 벡터 연결:AV:L/PR:L은 로컬 접근 권한이 필요함을 의미하며,AC:L은 특수한 설정 외에 공격 난이도가 낮음을 뜻하지만, 실제로는 매우 정교한 타이밍의 Race Condition을 유발해야 하므로 실측 악용 난이도는hard로 평가됩니다.
악용 가능성: 본 취약점은 공격 난이도가 Hard로 판정되며, 실제 악용 가능성은 매우 낮을 것으로 분석됩니다. CVSS 벡터 상 AV:L 및 PR:L 조건에 따라, 공격자는 이미 시스템 내부에 낮은 권한의 계정을 확보한 상태에서 커널 메모리에 접근할 수 있어야 합니다. 공격 표면은 IPv6 라우팅 테이블(FIB)을 관리하는 fib6_select_path 함수이며, 특히 BGP와 같은 동적 라우팅 프로토콜을 통해 next hop 정보가 빈번하게 변경되는 고부하 네트워크 환경이 트리거 조건입니다. 이론적으로는 다중 코어 환경에서 링크드 리스트의 노드가 동시에 삭제될 때 발생하는 Race Condition을 유도하여 Soft Lockup(DoS)을 일으킬 수 있으나, 이를 정밀하게 제어하여 공격에 이용하기는 매우 까다롭습니다. 이러한 기술적 난이도는 EPSS 실측값 0.00207 및 KEV 미등재 상태와 일치하며, 이는 야생에서의 실제 악용 사례가 관측되지 않았음을 시사합니다. 결과적으로 본 취약점은 특정 조건의 Edge Router 환경에서 발생 가능성이 높으나, 일반적인 서버 환경에서는 실질적인 위협 수준이 낮습니다.
💥 영향 분석
(1) 기술적 위험: 서비스 거부(DoS). 무한 루프 발생 시 CPU 자원을 완전히 점유하여 시스템이 응답하지 않는 Soft Lockup 상태가 되며, 최종적으로 커널 패닉으로 인해 시스템이 재부팅되거나 중단됩니다.
(2) 비즈니스 영향: 특히 Linux 기반 엣지 라우터나 네트워크 장비에서 발생할 경우, 대규모 네트워크 경로 단절로 인한 서비스 가용성 상실 및 인프라 마비 리스크가 있습니다.
🔗 관련 취약점·체이닝
- 추정: 본 취약점은 CWE-362(Race Condition) 유형에 해당하며, 단독으로 시스템 가용성을 파괴합니다.
- 추정: 다른 권한 상승(LPE) 취약점과 체이닝될 경우, 일반 사용자가 커널 패닉을 유도하여 보안 솔루션을 무력화하거나 특정 서비스의 재시작을 강제하는 시나리오가 가능할 수 있습니다.
🔎 탐지
(1) 로그 지표: 시스템 로그(dmesg, /var/log/syslog) 내 soft lockup 메시지와 fib6_select_path 함수 호출 스택이 포함된 커널 패닉 덤프.
(2) 탐지 규칙 예시:
- Logic:
dmesg또는/var/log/kern.log에서 "watchdog: BUG: soft lockup" 문구와 "fib6_select_path" 문자열이 동시에 발견되는지 모니터링. - SIEM Query (Pseudo):
index=linux_logs message="*soft lockup*" AND message="*fib6_select_path*"
(3) 오탐 시나리오: 단순한 CPU 과부하로 인한 Soft Lockup이 발생할 수 있습니다. 이를 구분하기 위해 덤프 내의 함수 호출 스택(Call Trace)에서 IPv6 라우팅 관련 함수가 명시적으로 나타나는지 확인하여 튜닝해야 합니다.
🛡️ 완화 방안
- 즉시(긴급 차단): BGP 업데이트 빈도를 제한하거나, 불필요한 IPv6 multipath 설정을 최소화하여 nexthop churn을 줄입니다. (난이도: 하 / 영향: 네트워크 수렴 속도 저하 가능성 / 검증: 라우팅 테이블 업데이트 주기 확인)
- 단기(완화): 시스템 모니터링 도구를 통해
soft lockup징후를 실시간 감시하고, 발생 시 자동 재부팅 설정을 검토합니다. (난이도: 하 / 영향: 가용성 일시 중단 / 검증: Watchdog 설정 확인) - 근본(해결): RCU primitives가 적용된 수정 버전의 커널로 업데이트합니다.
- 대상 버전: Linux kernel 4.15
6.1.128, 6.26.6.75, 6.76.11.11, 6.126.12.2 이후의 패치 버전. - (난이도: 중 / 영향: 커널 업데이트에 따른 시스템 재부팅 필요 / 검증:
uname -r을 통한 버전 확인)
- 대상 버전: Linux kernel 4.15
[분석 근거] 본 리포트는 다중 소스 데이터 간 일관성이 확인된 교차검증 결과를 바탕으로 작성되었습니다. 실측 EPSS 수치(0.00207)가 매우 낮고, KEV 미등재 및 로컬 권한 필요(AV:L/PR:L) 조건에 따라 실제 악용 가능성은 낮으므로 우선순위를 monitor로 결정하였습니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00207 · exploit=hard · in_scope=None