Kestrel
CVE-2025-71088DGX_A· 2026년 8월 1일 AM 02:12

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

CVE-2025-71088 is a race condition in the Linux MPTCP stack that can cause kernel panic and full service outage, best mitigated by applying patches or disabling MPTCP.

📋 요약

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

🔍 공격 기법

  • 트리거 조건

    • MPTCP가 활성화된 커널에서 두 개 이상의 서브플로우가 거의 동시에 subflow_data_ready()를 실행할 때 발생하는 경쟁 상태.
    • 구체적인 입력은 동일 소켓에 대해 짧은 간격으로 여러 SYN/ACK(또는 MP‑JOIN) 패킷을 전송하거나, 사용자 공간에서 연속적으로 mptcp_connect() 호출을 수행해 서브플로우를 동시 생성하는 행위.
  • 공격 단계

    1. 정찰 – 대상 호스트가 MPTCP 사용 여부를 /proc/sys/net/mptcp/enabled(값 = 1)와 커널 버전(uname -r)으로 확인. 지원 버전은 6.1.110‑6.1.160, 6.2.1‑6.6.120, 6.7‑6.12.65, 6.13‑6.18.4 등.
    2. 초기 접근 – 로컬 사용자(Low) 혹은 동일 LAN·네트워크 내에서 MPTCP 연결을 생성할 수 있는 권한 확보(예: 일반 계정 로그인). 원격 공격자는 TCP/UDP 포트가 열려 있으면 패킷 전송만으로도 초기 접근이 가능.
    3. 실행 – 다중 서브플로우를 거의 동시에 시작하고, 타이밍을 조절해 subflow_data_ready()가 두 스레드에서 경쟁하도록 함. 이는 - 짧은 간격의 SYN/ACK 전송, - 멀티스레드 사용자 프로그램으로 connect() 호출을 반복하는 방식 등으로 구현 가능.
    4. 권한 획득 – 직접적인 권한 상승은 없으며, 경쟁 상태가 검증되지 않아 커널 OOPS·패닉을 일으켜 시스템 전체를 중단시킴(AV:L, AC:L, PR:L, UI:N).
    5. 영향 – 커널 패닉 → 자동 재부팅 또는 수동 복구 필요 → 서비스 가용성 100 % 손실(DoS).
  • 공격 표면

    • 노출 엔드포인트: MPTCP 소켓 (TCP 포트와 동일)
    • 파라미터·프로토콜: MPTCP 옵션 헤더, 서브플로우 ID, 연결 순서 및 타이밍
  • CVSS 벡터 매핑

    • AV:L → 공격자는 로컬 혹은 같은 LAN에서 패킷을 전송할 수 있어 충분히 충족.
    • AC:L → 타이밍 조절만으로 경쟁 상태를 유발 가능.
    • PR:L → 일반 사용자 권한이면 실행 가능.
    • UI:N → 추가 입력 요구 없음.
  • 원리subflow_data_ready() 내부에서 fallback 플래그를 설정·읽는 과정에 메모리 동기화가 없으며, 두 스레드가 동시에 접근하면 일관성 없는 상태가 남아 커널 panic을 초발한다(전형적인 데이터 레이스, CWE‑366).

악용 가능성: 이 취약점은 AV:L (로컬 접근) 조건을 요구하므로, 공격자는 대상 시스템에 이미 로컬 권한을 보유하거나 악성 코드를 실행할 수 있는 환경이어야 합니다. AC:L (낮은 복잡도)와 PR:L (낮은 권한) 덕분에, 루트가 아닌 일반 사용자라도 경쟁 상태를 유발할 수 있는 간단한 코드만으로 공격이 가능하며, UI:N (사용자 개입 없음)이라 별도의 사회공학적 행위가 필요하지 않습니다. EPSS 0.00121이라는 실측값은 현재까지 실제 악용 사례가 극히 드물어 위협 수준이 낮음에도, 로컬 권한을 확보한 경우에는 이론적으로는 언제든지 활용될 수 있음을 시사합니다. KEV에 등재되지 않은 점 역시 공개된 공격 코드나 캠페인이 아직 존재하지 않음을 의미하지만, 취약점 자체가 커널 내부 레이스 컨디션이므로 악의적인 로컬 프로그램이 이를 트리거할 가능성은 배제할 수 없습니다. 공격 표면은 MPTCP 서브플로우 관리 함수 subflow_data_ready()와 그 주변 파라미터(동시 연결 설정, fallback 상태)이며, 네트워크 스택을 통해 MPTCP 연결을 시도하는 모든 로컬 프로세스가 해당 경로에 노출됩니다. 따라서 공격자는 동일 호스트 내에서 다중 MPTCP 세션을 동시에 생성·해제하는 작업만으로 레이스를 유발하고, 커널의 fallback 로직이 일관되지 못하게 만들어 시스템 안정성을 저해할 수 있습니다.

💥 영향 분석

  • 성공 시 커널이 패닉하고 재부팅되며, 현재 실행 중인 모든 서비스와 세션이 즉시 종료된다.
  • 기밀성·무결성 손상은 보고되지 않았으나, 가용성(A:H) 손실이 비즈니스 연속성에 심각한 영향을 미친다.

🔗 관련 취약점·체이닝

  • 동일 네트워크 스택 레이스 – Linux TCP/UDP 서브시스템에서도 유사한 경쟁 조건(CWE‑366)이 보고된 바 있다. 공격자는 먼저 다른 레이스(예: tcp_fastopen 등)로 메모리 손상을 일으킨 뒤, 본 결함을 트리거해 패닉을 가속화할 수 있다(추정).
  • MPTCP 설정 우회net.mptcp.fallback_enabled가 켜져 있으면 fallback 로직 호출 빈도가 증가해 레이스 발생 확률이 상승한다(추정).
  • 다른 커널 권한 상승 결함과 연계 – 별도 CVE에서 발견된 capability 검증 오류와 조합하면, 패닉 후 재부팅 단계에서 부트 파라미터를 변조하거나 루트 쉘을 삽입하는 시나리오가 이론적으로 가능하지만 현재 증거는 없다(추정).

🔎 탐지

  • dmesg·syslog에 “kernel panic”, “Oops”와 함께 subflow_data_ready+0x 혹은 net/mptcp/subflow.c:1515 문자열이 기록될 경우 경보.
  • KASLR 비활성화 환경에서 perf trace -e net:mptcp_subflow_data_ready 등으로 호출 빈도가 급증하면 탐지 가능.
  • MPTCP 연결 시 동일 소켓에 다중 SYN/ACK가 10 ms 이하 간격으로 발생하는 패턴을 네트워크 IDS(예: Suricata)에서 캡처하도록 룰 추가.

🛡️ 완화 방안

  • 패치 적용 – 영향을 받는 커널 버전(6.1.110‑6.1.160, 6.2.1‑6.6.120, 6.7‑6.12.65, 6.13‑6.18.4 등)에서 제공되는 최신 보안 업데이트를 즉시 배포.
  • MPTCP 비활성화sysctl -w net.mptcp.enabled=0 혹은 부팅 옵션에 mptcp_disable=1을 추가해 스택 자체를 차단.
  • 모니터링 강화 – 위 탐지 지표를 SIEM에 연동하고, 커널 패닉 발생 시 자동 재부팅·알림 워크플로우를 구축.
  • 가용성 대비 – 고가용성 클러스터링 또는 컨테이너 기반 자동 복구 메커니즘을 도입해 서비스 중단 시간을 최소화.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…