[방어] 분석 — CVE-2025-21706
CVE-2025-21706 is a local MPTCP “fullmesh” flag misuse in the Linux kernel that can cause kernel warnings and denial‑of‑service, and the top immediate mitigation is to disable MPTCP via sysctl.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00205 · 악용난이도 hard
🔍 공격 기법
- 로컬 사용자가 netlink 인터페이스를 통해
mptcp_pm_nl_fullmesh()를 호출하고, 내부의set_flags()훅이 허용되지 않아야 할 implicit 엔드포인트에fullmesh플래그를 부여함. - 이 플래그가 설정된 상태에서 서브플로우 재구성이 트리거되면 커널 내부 데이터 구조가 일관성을 잃어, 시스템 전반에 걸쳐 Availability (H) 가 크게 저하되는 상황(패닉 또는 서비스 중단)으로 이어짐.
- 공격 흐름:
root혹은CAP_NET_ADMIN권한을 가진 로컬 프로세스 → netlink 메시지 전송 (NLMSG_TYPE = MPTCP_PM_NL_FULLMESH) →mptcp_pm_nl_set_flags()경로 진입 → 부적절하게 플래그 적용 → 커널 워닝 발생 및 잠재적 패닉.
악용 가능성: 이 취약은 AV:L (로컬)·AC:L (낮은 복잡도)·PR:L (저권한)·UI:N (사용자 개입 없음)이라는 CVSS 벡터가 의미하듯, 공격자는 로컬 시스템에 접근해 루트 권한 없이도 netlink 인터페이스를 통해 mptcp_pm_nl_fullmesh() 함수를 호출할 수 있으면 충분합니다. 실제로 필요한 전제조건은 Linux kernel 내에서 MPTCP path‑manager가 활성화된 상태와, 해당 netlink 소켓에 접근 가능한 프로세스(예: 컨테이너 내부 혹은 제한된 사용자 계정)만 존재합니다. EPSS 0.00205라는 수치는 현재까지 악용 사례가 매우 드물지만, 로컬 권한을 가진 공격자가 충분히 시도할 수 있는 “저난이도·고확률” 상황임을 보여줍니다. KEV에 등재되지 않은 이유는 아직 대규모 공격이 보고되지 않았기 때문이며, 이는 이론적 심각도가 낮게 평가된 것이 아니라 관측된 악용 빈도가 적은 것일 뿐입니다. 트리거 조건은 net/mptcp/pm_netlink.c 의 fullmesh 플래그를 implicit endpoint에 부여하도록 하는 netlink 메시지를 전송하는 것으로, 해당 엔드포인트와 플래그 조작이 가능한 모든 파라미터(예: NLMSG_TYPE, NLATTR) 가 공격 표면이 됩니다. 따라서 로컬에서 netlink API 를 사용할 수 있는 프로세스가 존재한다면, 별도의 권한 상승 없이도 커널 내부 MPTCP 서브플로우 구성을 임의로 변경해 서비스 거부 혹은 트래픽 변조를 유발할 가능성이 있습니다.
💥 영향 분석
- 가용성 손실: CVSS 벡터에 따라
A:H로, 성공 시 시스템 전체가 멈추거나 재부팅이 필요할 수 있음. - 권한 상승은 없음(
C:N/I:N)하지만 서비스 중단으로 인한 비즈니스 연속성 위험이 가장 큰 영향이다. - 영향을 받는 커널 버전:
5.18‑6.1.129,6.2‑6.6.78,6.7‑6.12.13,6.13‑6.13.2. 해당 범위 내 모든 배포판이 대상.
🔗 관련 취약점·체이닝
- 동일 MPTCP 모듈에서 플래그 검증 부실(예:
mptcp_pm_nl_set_prio)과 결합될 경우, 플래그 조작을 통한 서비스 거부와 더불어 연결 재조정 로직을 악용해 네트워크 트래픽 차단으로 이어질 수 있음. - 현재 알려진 다른 CVE와 직접적인 체이닝 사례는 없으나, MPTCP 전반의 플래그 관리 취약점은 동일 공격자가 연속적으로 활용할 가능성이 존재함.
🔎 탐지
- 커널 로그 감시:
dmesg,/var/log/kern.log등에 다음 패턴이 나타나는지 모니터링- 정
🛡️ 완화 방안
- 즉시(긴급 차단): MPTCP 전체 기능을 비활성화한다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00205 · exploit=hard · in_scope=None