[공격] 분석 — CVE-2025-21706
CVE-2025-21706 allows a local low‑privilege user to trigger an MPTCP path‑manager bug that can cause kernel warnings and potential denial‑of‑service; immediate patching or disabling MPTCP is recommended.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00205 · 악용난이도 hard
🔍 공격 기법
- 공격 표면:
net/mptcp/pm_netlink.c가 구현한 netlink family (family ID obtained viaGENL_ID_CTRL). 주요 파라미터는MPTCP_PM_ATTR_FULLMESH와 엔드포인트 식별자(MPTCP_PM_ATTR_ENDPOINT). - 트리거 조건:
- 시스템이 MPTCP를 커널에 포함하고 활성화(
/proc/sys/net/mptcp/enabled=1) 상태여야 함. - 공격자는 로컬에서 netlink 소켓을 열어(
socket(AF_NETLINK, SOCK_RAW, NETLINK_GENERIC)) 해당 family에 메시지를 전송할 수 있어야 함(프리미션PR:L에 부합). - “implicit” 엔드포인트(서브플로우가 아닌 주소)에 대해
fullmesh플래그를 설정하는 netlink 속성을 포함시킴.
- 시스템이 MPTCP를 커널에 포함하고 활성화(
- 전략 단계:
- 정찰 –
lsmod | grep mptcp,sysctl -a | grep net.mptcp로 MPTCP 존재 여부 확인. - 초기 접근 – 일반 사용자 권한으로 netlink 소켓을 생성하고,
genl_ctrl_getfamily("MPTCP_PM")로 family ID 획득. - 실행·권한 상승 –
nlmsg에MPTCP_PM_CMD_SET_FLAGS와MPTCP_PM_ATTR_FULLMESH=1, 대상 엔드포인트를 “implicit”으로 지정하여 전송. 커널 내부의mptcp_pm_nl_set_flags()가 허용되지 않은 경로에서도 플래그를 설정하게 됨. - 지속 – 지속적인 플래그 조작을 통해 상태 불일치를 유발, 커널이 반복적으로 경고와 잠재적 OOPS(예:
__mark_subflow_endp_available경고) 를 발생시켜 서비스 가용성을 저해함. - 영향 – 최악의 경우 커널 패닉으로 시스템 다운(DOS). 현재 CVSS 벡터(
AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)와 일치하는 시나리오임.
- 정찰 –
참고: 본 공격 경로는 다중 소스 교차검증을 통해 일관성이 확인되었으며([교차검증] “다중 소스 데이터 일관성 확인됨”).
악용 가능성: 이 취약점은 AV:L (로컬) · AC:L (낮은 복잡도) · PR:L (낮은 권한) · UI:N 이라는 CVSS 벡터가 실제 환경을 그대로 반영합니다. 즉, 로컬 계정만 있으면 추가적인 사용자 조작 없이도 netlink 인터페이스를 통해 mptcp_pm_nl_fullmesh() 함수를 호출할 수 있습니다. 공격 표면은 net/mptcp/pm_netlink.c 에 구현된 fullmesh 플래그 설정 파라미터이며, 이 파라미터가 ‘implicit’ 엔드포인트에도 허용되는 점이 핵심입니다. 다만 KEV 목록에 등재되지 않았고 EPSS 값이 0.00205 로 매우 낮아 실제 악성 코드 배포나 공격 시도가 보고된 사례는 거의 없습니다. 따라서 이론적으로는 로컬 권한만으로 플래그를 조작해 커널 경고를 유발하거나 서비스 거부(DoS) 상황을 만들 수 있지만, 성공적인 활용을 위해서는 MPTCP가 활성화된 커널과 해당 netlink 소켓에 접근 가능한 환경이 전제되어야 합니다. 이러한 제한적 조건 때문에 등급은 hard 으로 판단되며, 실전에서의 위협도는 EPSS와 KEV 비등재 사실이 뒷받침합니다.
💥 영향 분석
- 성공 시 로컬 시스템이 커널 경고를 반복적으로 출력하고, 특정 상황에서 커널 패닉으로 인한 서비스 중단(가용성 손실) 발생.
- 기밀성·무결성에는 직접적인 영향을 주지 않음(C:N/I:N).
🔗 관련 취약점·체이닝
- 유형: 논리 플래그 조작(Low‑privilege flag injection) → 상태 불일치 → 서비스 거부(DoS). 현재 CWE 번호가 명시되지 않아
추정:로 표기. - 가능한 체인: 동일 커널 버전에서 발견된 다른 MPTCP 관련 결함(예: 주소 관리 오류, 메모리 누수)과 조합하면 권한 상승 가능성이 이론적으로 존재하지만, 공개된 CVE가 없으므로
추정:로 남김.
🔎 탐지
- 커널 로그:
dmesg혹은 syslog에 “WARNING: … __mark_subflow_endp_available” 와 같은 문자열이 반복 등장하는 경우. - AuditNetlink: 비특권 UID/GID가 MPTCP_PM netlink family로 전송한
SET_FLAGS메시지 감시. - 시스템 안정성 지표: 급격한 OOPS/Crash 로그 증가,
kexec재부팅 시도 등.
🛡️ 완화 방안
- 패치 적용 – 영향을 받는 커널(5.18‑6.13.2) 버전을 최신 보안 업데이트로 교체(예: 6.13.3 이상).
- MPTCP 비활성화 – MPTCP가 필요 없을 경우
sysctl -w net.mptcp.enabled=0또는 커널 컴파일 시CONFIG_MPTCP=n로 설정. - 권한 제한 –
CAP_NET_ADMIN이 없는 일반 사용자에 대해 MPTCP netlink family 접근을 AppArmor/SELinux 프로파일로 차단. - 모니터링 강화 – 위 탐지 지표를 실시간으로 수집하고, 경고 발생 시 자동 알림 및 서비스 재시작 정책 적용.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00205 · exploit=hard · in_scope=None