[공격] 분석 — CVE-2025-21705
CVE-2025-21705 is a local MPTCP fast‑open disconnect bug that can corrupt kernel data and cause denial‑of‑service; immediate mitigation is to disable MPTCP fast‑open (or MPTCP) and apply the upstream patch.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00205 · 악용난이도 hard
🔍 공격 기법
- 공격 전제: 로컬 사용자 권한(L) 또는 제한된 특권(PR:L)으로 커널에 접근 가능해야 함(AV:L). UI 요구 없음(UI:N).
- 트리거 조건:
- MPTCP 소켓을 생성하고 TCP Fast Open 옵션(
TCP_FASTOPEN)을 사용한다. - Fast Open 연결이 비정상적으로 끊어질 때, 커널은
__mptcp_clean_una()를 호출한다. - 특수하게 조작된 Fast Open 패킷(예: SYN‑ACK에 비정상적인 옵션 길이/값) 혹은 빠른 재연결 시점에서 연결 종료 플래그를 조작하면,
__mptcp_clean_una()내부의 포인터 연산이 잘못되어 데이터 스트림이 손상된다.
- MPTCP 소켓을 생성하고 TCP Fast Open 옵션(
- 실행 흐름:
- 정찰/초기 접근 – 로컬 시스템에 접속하고
/proc/sys/net/mptcp/enabled가 1인지 확인한다(노출 엔드포인트). - 전략적 요청 전송 –
socket(AF_INET, SOCK_STREAM, IPPROTO_MPTCP)로 MPTCP 소켓을 만들고,setsockopt(..., TCP_FASTOPEN, ...)로 Fast Open를 활성화한다. - Fast Open 연결 시도 → 비정상 종료 – 조작된 Fast Open SYN 패킷을 전송하고, 즉시 연결을 강제 종료(
close()혹은 RST)하여 커널이__mptcp_clean_una로 진입하도록 만든다. - 커널 OOPS 발생 – 내부 포인터 오류가 트리거되어 커널 패닉(Availability Impact = H)으로 이어진다.
- 정찰/초기 접근 – 로컬 시스템에 접속하고
- CVSS 벡터와 연결: AV:L·AC:L·PR:L·UI:N 은 위와 같이 로컬, 저복잡도, 저특권, 사용자 상호작용 없이 자동 실행이 가능함을 의미한다.
악용 가능성: AV:L (로컬) → 취약점은 커널 내부 __mptcp_clean_una() 함수에서 발생하므로 공격자는 해당 호스트에 직접 코드를 실행하거나 네트워크 네임스페이스에 접근해야 합니다.
AC:L (낮은 복잡도) → MPTCP Fast Open 옵션을 활성화한 소켓에 특수 패킷만 전송하면 바로 트리거되며, 별도의 레이아웃 조작이나 타이밍 조절이 필요 없습니다.
PR:L (낮은 권한) → 루트가 아니더라도 일반 사용자 권한으로 MPTCP 소켓을 생성하고 setsockopt() 로 Fast Open 플래그를 설정하면 충분합니다.
UI:N (사용자 개입 없음) → 패킷 전송 후 자동으로 커널 내부 상태가 손상되므로 사용자의 추가 행동이 요구되지 않습니다.
EPSS = 0.00205 는 현재 실측 악용 사례가 거의 없지만, 로컬 권한만 있으면 재현 가능하다는 점을 반영한 수치이며, KEV에 등재되지 않은 것은 아직 공개적인 공격이 보고되지 않았기 때문입니다.
공격 표면은 MPTCP Fast Open 연결 설정 시 사용되는 TCP_FASTOPEN 옵션과 해당 옵션이 적용된 소켓의 시퀀스/ACK 번호 파라미터이며, 이를 조작해 커널 메모리 손상을 일으키면 시스템 다운 또는 권한 상승으로 이어질 수 있습니다.
💥 영향 분석
- 성공 시 커널 패닉 및 시스템 다운(Availability = High) 발생 → 서비스 중단, 재부팅 필요.
- 데이터 무결성·기밀성은 영향을 받지 않음(C:N/I:N).
- 다중 커널 버전(6.1.36‑6.1.129, 6.3.10‑6.4, 6.4.1‑6.6.76, 6.7‑6.12.13, 6.13‑6.13.2) 에서 동일한 버그가 존재하므로 광범위한 Linux 배포판이 대상이 된다.
🔗 관련 취약점·체이닝
- 유형: 현재 CWE 식별자는 없으나 “Use‑After‑Free / NULL‑Pointer Dereference” 와 유사한 메모리 관리 오류로 추정한다(추정).
- 가능한 체인:
- MPTCP → 권한 상승 – 동일 시스템에 이미 로컬 루트 권한이 없는 경우, 커널 패닉을 이용해 재부팅 후 부팅 옵션을 조작하거나
initramfs를 교체해 영구적인 루트 획득이 가능할 수 있다(전통적인 DoS → PrivEsc 체인). - MPTCP → 컨테이너 탈출 – 컨테이너가 호스트 커널을
- MPTCP → 권한 상승 – 동일 시스템에 이미 로컬 루트 권한이 없는 경우, 커널 패닉을 이용해 재부팅 후 부팅 옵션을 조작하거나
🔎 탐지
- 커널 로그:
dmesg또는 syslog에"__mptcp_clean_una"혹은"net/mptcp/protocol.c:1024"문자열이 포함된 WARN 메시지가 기록될 경우. - SIEM 룰 예시:
msg:*mptcp_fast_open* OR msg:*__mptcp_clean_una*→ 경보. - 프로세스/시스템 상태: 비정상적인 커널 패닉 후 자동 재부팅 로그,
kernel.panic카운터 급증.
🛡️ 완화 방안
1️⃣ 즉시 조치 – MPTCP fast‑open 기능을 비활성화
1 2## ⚖️ 위험도 / 우선순위 3- 조치: monitor (모니터링) 4- 근거: CVSS=5.5 · non-KEV · EPSS=0.00205 · exploit=hard · in_scope=None