Kestrel
CVE-2025-21706DGX_E· 2026년 7월 31일 AM 01:55

[단독공격] 분석 — CVE-2025-21706

Local unprivileged netlink misuse of MPTCP “fullmesh” flag can trigger kernel warnings and potential denial‑of‑service on affected Linux kernels; immediate patching and capability hardening are required.

📋 요약

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

🔍 공격 기법

  • 트리거 조건: 로컬 프로세스가 netlink를 통해 mptcp_pm_nl_set_flags()fullmesh 플래그를 전달할 때, 대상 엔드포인트가 “subflow”가 아닌 ‘implicit’ 엔드포인트인 경우(코드 경로 pm_netlink.c:1496‑2064).
  • 공격 표면:
    • Netlink 소켓 (AF_NETLINK, NETLINK_GENERIC) → MPTCP path‑manager netlink family.
    • 플래그 파라미터: fullmesh=1 (속성 ID MPTCP_PM_ATTR_FULLMESH).
  • 단계 흐름:
    1️⃣ 정찰/proc/net/mptcp 혹은 sysfs에서 MPTCP가 활성화돼 있는지 확인. (cat /proc/sys/net/mptcp/*)
    2️⃣ 초기 접근 – 일반 사용자 권한(Low Privilege, PR:L)으로 Netlink 소켓을 열고 GENL_ID_CTRL 로 MPTCP family ID를 조회.
    3️⃣ 실행·권한 획득NLMSG_TYPE = MPTCP_PM_CMD_SET_FLAGS 메시지에 fullmesh=1 과 함께 비‑subflow 엔드포인트 식별자를 삽입하여 전송. 커널은 검증 로직이 부재해 플래그를 허용하고, 내부 __mark_subflow_endp_available() 에서 경고를 출력한다.
    4️⃣ 지속 – 동일 프로세스가 반복 호출하거나 악성 스크립트가 주기적으로 플래그를 재설정하면 커널 내부 구조(플로우 테이블) 손상이 누적될 수 있음.
    5️⃣ 영향 – 경고 이후 커널이 비정상적인 서브플로우 상태를 유지해 메모리 사용량 급증·잠재적 패닉을 초래, 서비스 거부(DoS) 혹은 인접 프로세스 권한 상승 시도에 이용 가능.
  • CVSS 벡터와 실제 조건 매핑: AV:L → 로컬 Netlink; AC:L → 단순 netlink 메시지 전송; PR:L → 일반 사용자 권한으로 충분; UI:N → 사용자 개입 불필요.

악용 가능성: 이 취약점은 로컬 공격자(AV:L)가 시스템 내부에서 netlink 소켓을 통해 mptcp_pm_nl_fullmesh 함수를 호출해 ‘fullmesh’ 플래그를 임의 엔드포인트에 설정할 수 있을 때 발생합니다. 복잡도는 낮으며(AC:L) 권한 요구가 최소 수준이므로 CAP_NET_ADMIN 정도만 있으면 충분하고, 사용자 개입이 필요하지 않으니(UI:N) 실행 장벽이 거의 없습니다. EPSS 0.00205라는 실측 확률은 매우 낮지만 완전히 무시할 수 없으며, KEV에 등재되지 않은 점은 아직 대규모 악용 사례가 보고되지 않았음을 의미합니다. 공격 표면은 netlink 인터페이스와 pm_netlink.c 내부의 플래그 설정 로직이며, 이를 통해 MPTCP 서브플로우 생성·제어를 조작해 네트워크 트래픽을 재구성하거나 서비스 거부 상태를 유발할 수 있습니다. 따라서 실제 공격은 로컬 권한이 확보된 상황에서 해당 netlink 메시지를 전송하는 것만으로도 가능하므로, 로컬 접근 통제가 핵심 방어 포인트가 됩니다.

💥 영향 분석

  • DoS: 비‑subflow 엔드포인트에 잘못된 fullmesh 플래그가 설정되면 MPTCP 서브플로우 관리 구조가 손상돼 커널 패닉 또는 무한 루프 발생 가능.
  • 잠재적 권한 상승: 커널 내부 데이터 구조 변조가 성공하면 인접 MPTCP 연결을 조작해 메모리 오버플로우 등으로 이어질 수 있음(현 시점에서는 아직 증명되지 않음).

🔗 관련 취약점·체이닝

  • 유형: 현재 CWE‑분류는 제공되지 않았으나, “불충분한 입력 검증”(추정: CWE‑20) 및 “잘못된 권한 체크”(추정: CWE‑269)와 유사.
  • 가능한 체인 패턴:
    • fullmesh 플래그 오용 → MPTCP 서브플로우 구조 손상 → 커널 메모리 오염 → 다른 로컬 권한 상승 취약점(CVE‑2024‑xxxx 등)과 결합 시 RCE 가능.
    • 동일 시스템에 존재하는 netfilter/eBPF 검증 우회 취약점과 연계하면, 악성 플래그 설정을 은닉하고 지속적인 DoS를 유지할 수 있음.

🔎 탐지

  • 커널 로그: dmesg 또는 syslog에 “WARNING: … net/mptcp/pm_netlink.c:1496 __mark_subflow_endp_available” 메시지가 반복적으로 기록되는 경우.
  • Audit 이벤트: auditctl -a always,exit -F arch=b64 -S socket -F a0=AF_NETLINK -k mptcp_fullmesh 로 Netlink 호출을 추적하고, fullmesh 플래그가 포함된 netlink attribute가 전송될 때 경보.
  • 프로세스 행위: 비‑root 사용자가 netlink를 열고 GENL_ID_MPTCP에 접근하는 시도 감시(예: Falco 규칙).

🛡️ 완화 방안

1️⃣ 패치 적용 – 해당 취약점이 수정된 커널 버전으로 업데이트 (6.13.3 이상, 또는 배포판 제공 보안 패치).
2️⃣ 권한 제한 – MPTCP netlink 인터페이스에 CAP_NET_ADMIN 권한을 요구하도록 sysctl 혹은 SELinux 정책 강화(netlink_mptcp_setflags 차단).
3️⃣ MPTCP 비활성화 – 필요 없을 경우 /proc/sys/net/mptcp/enabled = 0 로 전역 비활성화.
4️⃣ 모니터링 – 위 탐지 지표를 SIEM에 연동해 경고 발생 시 즉시 조사하도록 설정.

*본 보고서는 다중 소스 교차검증이 일관성을 확인했으며([교차검증] → 다중 소스에서 일관성이 확인됐다), EPSS 0.00205(실측 악용예측)와 낮은 백분위(.10762)를 근거로 위험도는 “hard” 수준이지만 현재까지 실제 PoC가 보고되지 않아 ‘monitor’‑우선 순위를 부여했습니다([우선순위 결정] → CVSS 5.5, non‑KEV, EPSS 0.00205, exploit hard).

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…