[방어] 분석 — CVE-2025-68291
A divide-by-zero vulnerability in the Linux kernel's MPTCP implementation can cause a system crash (DoS), requiring immediate disablement of MPTCP if patching is not feasible.
📋 요약
- 심각도 미상 · CVSS 미상 · EPSS 0.00187 · 악용난이도 hard
🔍 공격 기법
- 원리:
mptcp_do_fastclose()함수가 호출될 때rcv_mss변수가 초기화되지 않은 상태(0)로tcp_send_active_reset()및 이후__tcp_select_window()로 전달됩니다. - 경로: MPTCP 소켓을 통해 특정 네트워크 패킷 흐름을 유도하여 Fast Close 상태를 트리거합니다.
- 결과:
__tcp_select_window()내에서 0으로 나누기(Divide-by-zero) 연산이 발생하여 커널 패닉(Kernel Panic/Oops)이 유발됩니다.
악용 가능성: 본 취약점은 Linux 커널의 MPTCP(Multi-Path TCP) 구현 중 mptcp_do_fastclose() 함수에서 rcv_mss 변수가 초기화되지 않은 채 tcp_send_active_reset()을 호출하여 발생하는 Divide-by-Zero 오류입니다. 공격자는 네트워크 패킷을 통해 MPTCP 연결의 Fast Close 상태를 유도함으로써 커널 패닉(Kernel Panic) 및 시스템 가용성 중단(DoS)을 일으킬 수 있습니다. CVSS 벡터상 Network(AV:N) 환경에서 원격 트리거가 가능하지만, 특정 프로토콜 스택 상태와 정확한 타이밍이 요구되므로 실제 공격 난이도는 Hard로 판정됩니다. EPSS 수치가 0.00187로 매우 낮고 KEV에 등재되지 않은 점은 현재 야생(In-the-wild)에서 활발히 악용되는 사례가 드물며, 이론적 심각도 대비 실제 공격 가능성이 낮음을 시사합니다. 주요 공격 표면은 MPTCP 프로토콜이 활성화된 엔드포인트의 TCP/IP 스택이며, 특히 __tcp_select_window() 함수로 진입하는 비정상적인 세션 종료 흐름이 트리거 조건이 됩니다. 결과적으로 정밀한 패킷 조작 능력이 필요하므로 무작위 공격보다는 특정 타겟을 겨냥한 고도화된 DoS 공격에 악용될 가능성이 있습니다.
💥 영향 분석
- 가용성 상실: 공격 성공 시 시스템이 즉시 중단되는 Denial of Service (DoS) 상태가 됩니다.
- 영향 범위: MPTCP(Multi-Path TCP) 기능을 활성화하여 사용 중인 Linux 서버 및 호스트가 대상입니다.
🔗 관련 취약점·체이닝
- 유형: CWE-369 (Divide by Zero) 패턴의 취약점입니다.
- 특징: 과거 bare TCP에서 발생했던 유사한 초기화 누락 이슈와 동일한 패턴을 보이며, 커널 네트워크 스택 내 상태 관리 미흡으로 인한 전형적인 런타임 에러입니다.
🔎 탐지
본 취약점은 패킷 수준의 시그니처보다 시스템 로그 기반의 사후/실시간 탐지가 유효합니다.
- 로그 지표: Linux 커널 로그(
dmesg,/var/log/syslog,journalctl)에서divide error및 MPTCP 관련 함수 호출 스택 확인. - 탐지 패턴 (SIEM 의사코드):
sql1SELECT timestamp, hostname, message2FROM kernel_logs3WHERE message LIKE '%Oops: divide error%'4 AND (message LIKE '%__tcp_select_window%' OR message LIKE '%mptcp_do_fastclose%')
- 정규식 패턴:
divide\s+error:.*__tcp_select_window - 오탐 튜닝: 일반적인 하드웨어 결함이나 다른 드라이버의 divide-by-zero 에러와 구분하기 위해 반드시 Call Stack 내에
mptcp관련 심볼이 포함되어 있는지 확인해야 합니다.
🛡️ 완화 방안
다중 소스 교차검증 결과 데이터 일관성이 확인되었으며, EPSS 0.00187(백분위 0.08643) 및 exploit=hard 등급을 근거로 우선순위를 monitor로 결정하였습니다. 이는 실제 악용 가능성은 매우 낮으나 발생 시 영향이 치명적이므로 다음과 같이 대응합니다.
- 즉시 (긴급 차단): MPTCP 기능 비활성화
- 방법: 커널 모듈 언로드 (
modprobe -r mptcp) 또는 sysctl 설정을 통해 MPTCP 사용 중지. - 난이도/영향: 낮음 / MPTCP를 사용하는 특정 애플리케이션의 통신 불가 (가용성 영향).
- 검증:
lsmod | grep mptcp명령어로 모듈 로드 여부 확인.
- 방법: 커널 모듈 언로드 (
- 단기 (완화): 네트워크 경계(FW/IPS)에서 비정상적인 TCP 옵션 및 MPTCP 제어 패킷 필터링.
- 방법: 추정: MPTCP 관련 TCP Option 30번 패킷의 급증 또는 비정상 패턴 감시.
- 난이도/영향: 중간 / 정상적인 MPTCP 트래픽 차단 가능성.
- 검증: IDS/IPS 로그를 통한 드롭 패킷 확인.
- 근본 (해결): 최신 커널로 업데이트 및 패치 적용.
- 방법:
mptcp_do_fastclose()내rcv_mss초기화 로직이 포함된 커널 버전으로 업그레이드. - 난이도/영향: 높음 / 시스템 재부팅 필요, 운영 환경 영향 큼.
- 검증:
uname -r및 패치 커밋 반영 여부 확인.
- 방법:
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=미상 · non-KEV · EPSS=0.00187 · exploit=hard · in_scope=None