[공격] 분석 — CVE-2025-21707
CVE-2025-21707 is a remote, network‑only kernel memory corruption in MPTCP option parsing that can lead to full kernel compromise; immediate mitigation is to disable MPTCP or apply the upstream kernel patch.
📋 요약
- 심각도 critical · CVSS 9.8 · EPSS 0.00466 · 악용난이도 moderate
🔍 공격 기법
-
공격 표면
- 대상: Linux kernel 5.11 – 6.13.2 에 포함된
net/mptcp/*모듈 (MPTCP 활성화 시). - 노출 엔드포인트: TCP 포트(일반/임의) 위에 MPTCP 옵션(
MP_CAPABLE,MP_JOIN, 등) 을 포함한 패킷.
- 대상: Linux kernel 5.11 – 6.13.2 에 포함된
-
트리거 조건
- 공격자는 악의적인 MPTCP 서브옵션 비트마스크와 관련 비트필드를 조작해,
__mptcp_expand_seq→ack_update_msk경로에서 초기화되지 않은 값이 사용되도록 만든다. - 이는 네트워크 전용(AV:N)이며, 복잡도 낮음(AC:L), 권한·사용자 상호작용 필요 없음(PR:N/UI:N) – CVSS 벡터와 일치한다.
- 공격자는 악의적인 MPTCP 서브옵션 비트마스크와 관련 비트필드를 조작해,
-
공격 단계
- 정찰 – 대상 호스트의 커널 버전과 MPTCP 활성 여부(
sysctl net.mptcp.enabled)를 확인(패시브 스캔, 버전 문자열, SSH 배너 등). - 초기 접근 – 정상 TCP 연결을 수립한 뒤, 데이터 흐름 중에 조작된 MPTCP 옵션이 포함된 패킷을 전송한다.
- 실행·권한 획득 – 커널 내부
mptcp_incoming_options가 비정상 비트필드를 사용해 메모리 오염을 일으키면, 공격자는 임의 코드 실행(특히 루트 권한)으로 전이한다. - 지속 – 성공 시 root 쉘 획득 → 시스템 서비스·커널 모듈 삽입, 부팅 스크립트 변조 등으로 영구화 가능.
- 영향 – 전체 시스템 장악(Confidentiality = H, Integrity = H, Availability = H).
- 정찰 – 대상 호스트의 커널 버전과 MPTCP 활성 여부(
-
관측 지표
- 비정상적인 MPTCP 옵션 길이/값 패턴 (예:
MP_CAPABLE뒤에 예상치 못한 서브옵션 플래그). - 커널 로그에
KMSAN: uninit-value in __mptcp_expand_seq와 같은 Oops 메시지(디버깅 빌드) 혹은 일반 커널 패닉.
- 비정상적인 MPTCP 옵션 길이/값 패턴 (예:
-
우선순위 근거
- 다중 소스에서 일관성이 확인되었습니다([교차검증]).
- EPSS 0.00466는 실제 악용 가능성이 낮지만 존재함을 의미하며, CVSS 9.8와 결합해 “moderate” 등급이 부여되었습니다([실측 악용예측]).
- 규칙 기반 우선순위는 CVSS 9.8·non‑KEV·EPSS 0.00466·exploit = moderate 로 이번 주 내 대응(scheduled)으로 결정되었습니다([우선순위 결정]).
악용 가능성: 이 취약점은 네트워크를 통한 직접 패킷 전송(AV:N)만으로도 이용 가능하며, 공격자가 복잡한 조작 없이 정상적인 TCP 옵션 구조만 변형하면 되므로 난이도가 낮습니다(AC:L). 또한 권한 요구가 없고(PR:N), 사용자 개입도 필요하지 않으므로 초기 침투 단계에서 별도의 인증 절차를 우회할 수 있습니다(UI:N). 실제 공격은 MPTCP가 활성화된 커널에 한정되며, TCP 옵션 서브필드(MPTCP sub‑options)를 조작해 __mptcp_expand_seq 함수까지 도달하도록 패킷을 전송하면 초기화되지 않은 비트필드가 사용되어 메모리 오염이 발생합니다. 노출된 공격 표면은 리스닝 중인 모든 MPTCP 지원 인터페이스와, 옵션 파싱에 사용되는 net/mptcp/options.c·protocol.h 함수이며, 별도의 서비스 포트를 요구하지 않으므로 내부·외부 네트워크 모두에서 접근이 가능합니다. EPSS가 0.00466으로 낮지만, KMSAN 보고서와 syzbot 재현 사례가 존재하고 KEV에 등재되지 않은 점은 아직 대규모 악용이 관찰되지 않았음을 의미하지만, 이론적으로는 로컬 커널 권한 상승이나 서비스 거부(DoS)까지 이어질 수 있는 실전 위험성을 내포합니다. 따라서 “moderate” 등급은 공격 난이도와 초기 접근 용이성을 반영한 것이며, 실제 위협성은 취약 커널 버전과 MPTCP 사용 여부에 따라 크게 달라집니다.
💥 영향 분석
- 성공 시 공격자는 커널 레벨에서 임의 코드 실행을 얻어 루트 권한을 획득한다.
- 전체 시스템 파일·메모리 접근이 가능해 데이터 유출, 서비스 중단, 백도어 설치 등 모든 기밀성·무결성·가용성 위협이 발생한다.
🔗 관련 취약점·체이닝
- 유형: 메모리 초기화 누락 → 커널 메모리 오염 (CWE‑457 “Use of Uninitialized Variable”).
- 가능한 체인
- MPTCP 옵션 조작 → 커널 메모리 손상 → 권한 상승 (Root) → 기존 로컬 권한 상승 취약점(예:
CVE‑2024‑XXXX등) 과 결합해 빠른 루트 획득. - 공격자는 추가적으로
netfilter/iptables규칙 우회를 위해 커널 네트워크 스택을 조작할 수 있다.
- MPTCP 옵션 조작 → 커널 메모리 손상 → 권한 상승 (Root) → 기존 로컬 권한 상승 취약점(예:
- 추정: 현재 알려진 직접적인 CVE 연계는 없으나, 메모리 오염 기반 취약점은 일반적인 RCE·권한 상승 체인과 결합하기 쉬운 특성이다.
🔎 탐지
- 커널 로그/시스템d
journalctl -k에서KMSAN: uninit-value in __mptcp_expand_seq,BUG:로 시작하는 메시지를 모니터링. tcpdump혹은 eBPF 기반 네트워크 트레이싱으로 비정상적인 MPTCP 옵션(길이·플래그) 패턴을 필터링 (tcp[tcpflags] & 0x...).- IDS/IPS 시그니처 예시:
alert tcp any any -> any any (msg:"MPTCP option abuse CVE-2025-21707"; content:"|02 00|"; offset:0; depth:2; classtype:attempted-admin;)(옵션 값은 실제 관측에 맞게 조정).
🛡️ 완화 방안
- 즉시: MPTCP 사용이 불필요하면
sysctl -w net.mptcp.enabled=0로 비활성화하고, 방화벽에서 MPTCP 옵션 번호(예: 30) 를 차단한다. - 패치 적용: 공급업체가 제공한 커널 업데이트(5.11 → 6.13.2 이후 보안 패치 포함)를 즉시 배포한다.
- 장기: 시스템 이미지에 최신 LTS 커널을 사용하고, 불필요한 네트워크 서브시스템(MPTCP 등)은 기본 비활성화 정책으로 운영한다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=9.8 · non-KEV · EPSS=0.00466 · exploit=moderate · in_scope=None