[분석가] 분석 — CVE-2025-21875
A race condition in the Linux kernel's MPTCP path manager address removal process can lead to a system crash (DoS), requiring a kernel update or disabling MPTCP if not essential.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.002 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: Multipath TCP(MPTCP)의 Path Manager(PM) 제어 경로에서 주소 제거(address removal) 처리 시, msk socket lock을 적절히 획득하지 않은 상태에서 자원에 접근할 때 발생하는 Race Condition입니다. Syzkaller를 통해 mptcp_pm_nl_addr_send_ack 함수 내에서 Lockdep splat(잠금 순서 위반/누락)이 보고되었습니다.
(2) 공격 단계:
- 정찰: 대상 시스템의 커널 버전 및 MPTCP 활성화 여부 확인.
- 초기 접근: 로컬 권한을 가진 사용자 계정 확보 (PR:L).
- 실행: 특정 시퀀스로 MPTCP 주소 제거 요청을 반복적으로 생성하여 Lock 경합 유도.
- 영향: 커널 패닉(Kernel Panic) 발생 및 시스템 중단.
(3) 공격 표면: Linux Kernel Netlink 인터페이스를 통한 MPTCP Path Manager 제어 경로.
(4) CVSS 벡터 연결:AV:L/AC:L/PR:L/UI:N에 따라, 로컬 권한을 가진 사용자가 특별한 사용자 상호작용 없이 낮은 복잡도로 시스템 가용성을 저해(A:H)할 수 있는 구조입니다.
악용 가능성: 본 취약점은 Linux kernel의 MPTCP(Multipath TCP) 프로토콜 내 주소 제거 처리 과정에서 발생하는 Lockdep 이슈로, 공격 난이도는 Hard로 판단됩니다. CVSS 벡터상 AV:L 및 PR:L 조건에 따라, 공격자는 대상 시스템에 이미 낮은 권한의 계정으로 접근하여 로컬 쉘을 확보한 상태여야만 트리거가 가능합니다. 공격 표면은 MPTCP의 PM(Path Manager) 제어 경로와 Netlink 인터페이스이며, 특정 시점에 msk socket lock 없이 주소 제거를 시도하는 레이스 컨디션(Race Condition) 상황을 정밀하게 유도해야 합니다. EPSS 수치가 0.002로 매우 낮고 KEV에 등재되지 않은 점은 현재 야생(In-the-wild)에서의 악용 사례가 관측되지 않았음을 시사하며, 이는 이론적 심각성과 별개로 실제 공격 가능성이 낮음을 의미합니다. 결과적으로 로컬 권한을 가진 공격자가 커널 패닉이나 불안정성을 유발할 수 있는 잠재적 위험은 존재하나, 정밀한 타이밍 제어가 필요하므로 실질적인 악용 가능성은 제한적입니다.
💥 영향 분석
(1) 기술적 위험: 커널 수준의 Lock 오류로 인한 시스템 크래시 및 서비스 거부(DoS). 데이터 유출이나 권한 상승보다는 시스템 안정성 파괴에 집중된 취약점입니다.
(2) 비즈니스 영향:
- 가용성: 서버 다운타임 발생으로 인한 서비스 중단.
- 신뢰도: 인프라 하위 레벨의 불안정성으로 인한 운영 신뢰도 저하.
- 노출 규모: MPTCP를 사용하는 광범위한 Linux 커널 버전(5.10 ~ 6.13 일부)이 영향권에 있어 잠재적 노출 범위는 넓으나, 로컬 권한이 필요하여 실제 위험도는 제한적입니다.
🔗 관련 취약점·체이닝
- 추정: 본 취약점은 단독으로 DoS를 유발하지만, 다른 커널 메모리 손상 취약점과 체이닝될 경우 시스템 상태를 불안정하게 만들어 예측 불가능한 실행 흐름을 유도하는 보조 수단으로 활용될 가능성이 있습니다.
- 추정: Race Condition 유형의 결함은 전형적으로 '상태 불일치 $\rightarrow$ 잘못된 포인터 참조 $\rightarrow$ Crash/권한 상승' 패턴으로 이어지나, 본 건은 현재
A:H(가용성 저해)에 국한되어 있습니다.
🔎 탐지
(1) 로그 지표: 커널 로그(dmesg, /var/log/syslog) 내 WARNING, lockdep splat, mptcp_pm_nl_addr_send_ack 관련 스택 트레이스 및 Kernel Panic 메시지.
(2) 탐지 규칙 예시:
- 로직:
dmesg또는 시스템 로그에서 MPTCP lock 관련 경고 패턴 매칭. - 정규식:
/(WARNING:.*mptcp_pm_nl_addr_send_ack|lockdep splat.*msk_owned_by_me)/ - SIEM 쿼리(의사코드):
SELECT timestamp, hostname FROM kernel_logs WHERE message LIKE '%mptcp_pm_nl_addr_send_ack%' AND (level == 'WARNING' OR level == 'CRITICAL')
(3) 오탐 시나리오: 정상적인 커널 디버깅 모드에서 발생하는 Lockdep 경고. 튜닝 방법으로는 운영 환경(Production)에서CONFIG_PROVE_LOCKING옵션이 비활성화된 상태의 실제 패닉 로그만 필터링하여 탐지합니다.
🛡️ 완화 방안
- 즉시(긴급 차단): MPTCP 기능 비활성화. (난이도: 하 / 영향: MPTCP 사용 서비스 불가 / 검증:
sysctl또는 모듈 로드 여부 확인) - 단기(완화): 일반 사용자 계정의 Netlink 소켓 접근 권한 제한 및 커널 파라미터 최적화. (난이도: 중 / 영향: 일부 네트워크 관리 도구 작동 제약 / 검증: 권한 없는 사용자의 MPTCP 설정 시도 차단 확인)
- 근본(해결): 영향받는 버전의 최신 패치 커널로 업데이트.
- Linux Kernel 5.10.236+, 5.15.180+, 6.1.131+, 6.6.82+, 6.12.19+, 6.13.7+ 등 해당 버전의 수정본 적용.
- (난이도: 중 / 영향: 커널 업데이트 후 재부팅 필요(가용성 일시 중단) / 검증:
uname -r로 업데이트된 버전 확인)
[분석 근거] 본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, 실측 EPSS 값(0.002)과 CVSS 5.5, 로컬 공격 벡터(AV:L), KEV 미등재 사실을 기반으로 규칙에 따라 우선순위를 'monitor'로 결정하였습니다. 특히 EPSS 수치가 매우 낮아 실제 야생에서의 악용 가능성이 희박함을 반영하였습니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.002 · exploit=hard · in_scope=None