Kestrel
CVE-2025-21938DGX_3· 2026년 7월 29일 AM 04:25

[분석가] 분석 — CVE-2025-21938

A race condition in the Linux kernel MPTCP implementation can cause a "scheduling while atomic" bug leading to system crashes, requiring kernel updates or disabling MPTCP.

📋 요약

  • 심각도 medium · CVSS 4.7 · EPSS 0.00137 · 악용난이도 hard

🔍 공격 기법

(1) 트리거 조건: 다수의 연결 요청이 병렬로 발생하여 mptcp_pm_nl_get_local_id에서 주소를 찾지 못한 여러 호출자가 동시에 mptcp_pm_nl_append_new_local_addr 함수에 진입할 때 발생합니다. 이때 이전 호출자가 생성한 엔트리를 삭제하기 위해 synchronize_rcu를 호출하게 되는데, 패킷 수신 중(RCU read critical section 및 preemption disabled 상태)인 컨텍스트에서 이를 수행하려 할 때 커널 패닉이 유발됩니다.
(2) 공격 단계:

  • 정찰: 대상 시스템의 Linux 커널 버전 및 MPTCP 활성화 여부 확인.
  • 초기 접근: 로컬 권한 획득 또는 네트워크를 통한 다수의 연결 요청 전송 (AV:L 기반).
  • 실행: 병렬적인 implicit mptcp endpoint 생성 요청을 통해 Race Condition 유도.
  • 영향: 커널의 scheduling while atomic 버그로 인한 시스템 Crash(DoS) 발생.
    (3) 공격 표면: Linux Kernel MPTCP(Multipath TCP) 스택, 네트워크 인터페이스 및 관련 소켓 API.
    (4) CVSS 벡터 분석:
  • AV:L (Local): 로컬 접근 권한이 필요함.
  • AC:H (High): 정확한 타이밍의 Race Condition을 유도해야 하므로 난이도가 높음.
  • PR:L (Low): 낮은 수준의 사용자 권한으로 트리거 가능.
  • UI:N (None): 사용자 상호작용 불필요.

악용 가능성: 본 취약점은 AV:L/AC:H/PR:L/UI:N 벡터에 따라 공격 난이도가 매우 높으며, 로컬 권한을 가진 사용자가 특수한 조건에서만 트리거할 수 있습니다. 공격자는 시스템 내 계정 권한(PR:L)을 확보한 상태에서 mptcp_pm_nl_append_new_local_addr 함수가 호출되는 시점에 정밀하게 타이밍을 맞춘 병렬 연결 요청을 생성해야 하며, 이는 높은 복잡도(AC:H)를 요구합니다. 공격 표면은 Linux 커널의 MPTCP(Multipath TCP) 프로토콜 스택 내 로컬 주소 관리 엔드포인트이며, 특히 패킷 수신 중 RCU read critical section에서 preemption이 비활성화된 상태로 synchronize_rcu가 호출될 때 'scheduling while atomic' 커널 패닉이 발생합니다. EPSS 수치는 0.00137로 매우 낮고 KEV에 등재되지 않은 점은 현재 야생(In-the-wild)에서의 실제 악용 사례가 관측되지 않았음을 시사합니다. 따라서 이론적인 심각도와 별개로, 정교한 Race Condition 유도가 필수적이므로 실질적인 악용 가능성은 낮은 것으로 판단됩니다.

💥 영향 분석

(1) 기술적 위험: 커널 패닉으로 인한 시스템 즉각 중단(Denial of Service). BUG: scheduling while atomic 발생 시 시스템이 응답 불능 상태가 되거나 재부팅됩니다.
(2) 비즈니스 영향: 가용성 상실. MPTCP를 사용하는 고가용성 네트워크 서비스나 서버의 경우, 예기치 않은 다운타임으로 인한 서비스 중단 및 운영 신뢰도 저하가 발생할 수 있습니다.

🔗 관련 취약점·체이닝

  • 추정: 본 취약점은 단독으로 시스템 가용성을 파괴하는 DoS 유형입니다. 다만, 커널 패닉을 유도하여 특정 보안 모듈의 작동을 일시 중단시키거나, 재부팅 과정에서 발생하는 초기화 취약점과 체이닝될 가능성이 있으나 구체적인 사례는 미관측되었습니다.

🔎 탐지

(1) 로그 지표: Linux 커널 링 버퍼(dmesg) 또는 /var/log/syslog, /var/log/messages 내의 커널 스택 트레이스 확인.

  • 핵심 패턴: BUG: scheduling while atomic, mptcp_pm_nl_append_new_local_addr, synchronize_rcu.
    (2) 탐지 규칙 예시:
  • SIEM 쿼리 (Pseudo-code): process == "kernel" AND message CONTAINS "scheduling while atomic" AND message CONTAINS "mptcp"
  • 로그 패턴 정규식: /BUG: scheduling while atomic.*mptcp_pm_nl_append_new_local_addr/
    (3) 오탐 시나리오 및 튜닝: MPTCP와 무관한 다른 커널 모듈에서 scheduling while atomic이 발생할 수 있습니다. 따라서 반드시 스택 트레이스 내에 mptcp 관련 함수명이 포함되어 있는지 확인하여 필터링해야 합니다.

🛡️ 완화 방안

  • 즉시(긴급 차단): MPTCP 기능 비활성화. (예: sysctl 또는 커널 파라미터를 통해 MPTCP 사용 중지). [난이도: 저 / 영향: MPTCP 기능 상실 / 검증: sysctl 설정 확인]
  • 단기(완화): 로컬 사용자 권한 제한 및 불필요한 네트워크 소켓 생성 제어. [난이도: 중 / 영향: 운영 프로세스 제약 가능성 / 검증: 권한 매트릭스 점검]
  • 근본(해결): 영향을 받는 커널 버전의 패치 업데이트 적용. (5.186.1.131, 6.26.6.83, 6.76.12.19, 6.136.13.7 이후 수정 버전으로 업그레이드). [난이도: 중 / 영향: 재부팅 필요 / 검증: uname -r로 커널 버전 확인]

[파이프라인 근거]
본 리포트는 다중 소스 데이터의 일관성이 확인된(신뢰도 1.0) 교차검증 결과를 바탕으로 작성되었습니다. 실측 EPSS 값인 0.00137(백분위 0.035)은 이론적 심각도와 별개로 실제 야생에서의 악용 가능성이 매우 낮음을 의미합니다. 이에 따라 KEV 미등재, 높은 공격 난이도(hard), 낮은 EPSS 수치를 종합하여 규칙 기반 우선순위를 'monitor'로 결정하였습니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…