[방어] 분석 — CVE-2025-40258
A race condition in the Linux kernel's MPTCP implementation leads to a use-after-free vulnerability, requiring immediate disabling of MPTCP if not essential and eventual kernel patching.
📋 요약
- 심각도 미상 · CVSS 미상 · EPSS 0.00171 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: mptcp_schedule_work() 함수 내에서 작업 스케줄링(schedule_work)과 참조 횟수 증가(sock_hold) 사이의 시간 간격(Race Window)이 발생할 때 트리거됩니다. mptcp_worker()가 sock_hold가 실행되기 전 빠르게 완료되어 소켓 객체를 해제하면 Use-After-Free (UAF) 상태가 됩니다.
(2) 공격 단계:
- 정찰: 대상 시스템의 커널 버전 및 MPTCP 활성화 여부 확인.
- 초기 접근: 네트워크 패킷을 통해 MPTCP 세션 생성 및 타임아웃 유도 (mptcp_tout_timer 호출).
- 실행: 정밀한 타이밍 공격으로 Race Condition을 유발하여 커널 메모리 오염 시도.
- 영향: 추정: 커널 패닉(DoS) 또는 임의 코드 실행을 통한 권한 상승.
(3) 공격 표면: MPTCP (Multipath TCP) 프로토콜 스택. 네트워크 인터페이스를 통해 유입되는 MPTCP 제어 패킷 및 타이머 이벤트.
(4) CVSS 벡터 연결: 추정: AV:N (네트워크를 통한 트리거 가능), AC:H (Race Condition의 정밀한 타이밍 필요), PR:N (권한 불필요), UI:N (사용자 개입 불필요).
악용 가능성: 본 취약점은 Linux 커널의 MPTCP(Multipath TCP) 스택 내 mptcp_schedule_work() 함수에서 발생하는 Race Condition 기반의 Use-After-Free(UAF)로, 공격 난이도는 Hard로 판정됩니다. CVSS 벡터상 Local 권한이나 특수하게 구성된 네트워크 환경(AV:N/L)이 필요하며, 매우 정밀한 타이밍에 mptcp_worker()가 실행되어 참조 횟수(refcount) 증가 전 객체를 해제해야 하므로 실제 악용 가능성은 낮습니다. EPSS 수치가 0.00171로 매우 낮고 KEV(Known Exploited Vulnerabilities)에 등재되지 않은 점은, 이론적인 커널 메모리 오염 위험에도 불구하고 실제 야생에서 공격 사례가 드문 전형적인 Race Condition의 특성을 보여줍니다. 공격 표면은 MPTCP 프로토콜을 사용하는 네트워크 엔드포인트와 관련 소켓 파라미터이며, 공격자는 특정 워크로드 스케줄링 타이밍을 강제하여 커널 패닉이나 권한 상승을 유도해야 합니다. 결과적으로 트리거 조건이 매우 까다롭고 예측 불가능한 커널 내부 상태에 의존하므로, 대규모 자동화 공격보다는 정밀하게 설계된 타겟팅 공격의 형태를 <0xEB><0x9D><0xB1>니다.
💥 영향 분석
(1) 기술적 위험: 커널 공간에서의 Use-After-Free로 인해 시스템 크래시(Kernel Panic)가 발생하여 서비스 가용성이 상실되거나, 공격자가 메모리 레이아웃을 조작할 경우 권한 상승(Privilege Escalation)이 가능합니다.
(2) 비즈니스 영향: Linux 서버의 갑작스러운 중단으로 인한 서비스 다운타임 발생 및 인프라 신뢰도 저하.
🔗 관련 취약점·체이닝
추정: 본 취약점은 Race Condition $\rightarrow$ Use-After-Free $\rightarrow$ Arbitrary Code Execution/Privilege Escalation 순으로 이어지는 전형적인 커널 메모리 오염 체인을 따를 가능성이 높습니다. 특히 MPTCP와 같은 네트워크 스택 결함은 원격에서 트리거될 수 있어 초기 진입점으로 활용될 수 있습니다.
🔎 탐지
(1) 로그 지표: Linux 커널 링 버퍼(dmesg, /var/log/kern.log) 내의 refcount_t: addition on 0 경고 메시지와 mptcp_schedule_work 관련 Call Trace 확인.
(2) 탐지 규칙 예시:
- 로직: 커널 로그에서 MPTCP 모듈과 refcount 경고가 동시에 발생하는 패턴 탐지.
- SIEM 의사코드:
SELECT * FROM kernel_logs WHERE message MATCHES 'refcount_warn_saturate' AND (message MATCHES 'mptcp_schedule_work' OR message MATCHES 'mptcp_tout_timer')
- 정규식 예시: refcount_t: addition on 0; use-after-free.*mptcp_schedule_work
(3) 오탐 시나리오 및 튜닝: 일반적인 커널 버그로 인한 드문 발생일 수 있으나, 특정 IP로부터 대량의 MPTCP 패킷 유입과 함께 해당 로그가 반복 발생한다면 공격 시도로 간주하여 임계값을 설정합니다.
🛡️ 완화 방안
- 즉시(긴급 차단): MPTCP 기능 비활성화.
- 방법:
modprobe -r mptcp또는 커널 파라미터/설정을 통해 MPTCP 사용 중지. - 난이도: 낮음 / 운영 영향: MPTCP 사용 서비스 불가 / 검증:
lsmod | grep mptcp결과 확인. (우선순위: 최상)
- 방법:
- 단기(완화): 방화벽/ACL에서 불필요한 MPTCP 관련 트래픽 차단 및 커널 로그 모니터링 강화.
- 난이도: 낮음 / 운영 영향: 매우 적음 / 검증: 패킷 캡처를 통한 MPTCP 옵션 차단 확인. (우선순위: 중)
- 근본(해결): 취약점이 해결된 최신 커널 버전으로 업데이트 및 재부팅.
- 방법: 영향 받는 범위($3b1d62... \le x < f865e6...$ 및 Linux 5.7 등)를 벗어난 패치 버전 적용.
- 난이도: 보통 / 운영 영향: 재부팅으로 인한 일시적 서비스 중단 / 검증:
uname -a또는 커널 빌드 ID 확인. (우선순위: 상)
[분석 근거] 본 리포트는 다중 소스에서 일관되게 MPTCP의 race condition 및 UAF 이슈가 확인되었음을 바탕으로 작성되었습니다. EPSS 실측값 0.00171(백분위 0.06717)은 현재 실제 악용 사례가 매우 드물고 공격 난이도가 높음(hard)을 의미합니다. 이에 따라 KEV 미등재 및 낮은 EPSS 수치를 근거로 우선순위를 'monitor'로 결정하였으나, 커널 레벨의 UAF 특성상 잠재적 위험이 크므로 기능 비활성화를 최우선 조치로 제안합니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=미상 · non-KEV · EPSS=0.00171 · exploit=hard · in_scope=None