[공격] 분석 — CVE-2025-71186
A device leak in the STM32 DMA MUX driver can lead to kernel memory exhaustion and DoS, requiring a kernel update for affected versions.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00183 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: dmaengine 내 STM32 dmamux 드라이버가 route 할당 과정에서 platform device의 reference를 획득한 후 이를 해제(put_device)하지 않는 결함을 이용함. 특정 DMA 채널 요청/해제 사이클을 반복하여 커널 객체 누수를 유발하는 것이 핵심임.
(2) 공격 단계:
- 정찰: 대상 시스템의 커널 버전 및 STM32 하드웨어 사용 여부 확인.
- 초기 접근: 로컬 사용자 권한 획득 (AV:L, PR:L).
- 실행: DMA 채널 할당을 유도하는 인터페이스(예: 특정 드라이버 API 호출)를 반복적으로 트리거하여
dmamuxdevice reference leak 발생시킴. - 영향: 커널 메모리 내 객체 누적으로 인한 시스템 리소스 고갈 $\rightarrow$ Kernel Panic 또는 시스템 정지(DoS).
(3) 공격 표면:
- 노출 지점: STM32 DMA MUX 드라이버의 route allocation 관련 내부 함수.
- 인터페이스: 해당 하드웨어 기능을 제어하는 커널 모듈 및 이를 호출하는 사용자 공간 API.
(4) CVSS 벡터 분석:
AV:L / PR:L: 공격자가 이미 시스템에 로그인한 상태여야 하며, 로컬 권한으로 커널 드라이버에 접근 가능해야 함.AC:L / UI:N: 특별한 설정이나 사용자 상호작용 없이 반복적인 API 호출만으로 트리거 가능.A:H: 메모리 누수로 인한 시스템 가용성 완전 상실(DoS)을 목표로 함.
악용 가능성: 본 취약점의 공격 난이도는 Hard이며, 실제 악용 가능성은 매우 낮습니다. CVSS 벡터 AV:L/PR:L에서 알 수 있듯, 공격자는 이미 시스템에 로그인한 낮은 권한의 로컬 계정을 확보해야 하며, 이는 외부에서의 직접적인 침투가 불가능함을 의미합니다. 특히 EPSS 수치가 0.00183으로 매우 낮고 KEV에 등재되지 않은 점은 현재 이 결함을 이용한 실전 공격 사례가 거의 없음을 방증합니다. 공격 표면은 Linux 커널의 dmaengine 내 stm32 dmamux 드라이버의 route allocation 경로로 한정되며, 특정 STM32 하드웨어 환경에서 DMA 채널 할당 및 해제 프로세스를 반복적으로 트리거해야 합니다. 결과적으로 이 취약점은 단순한 Device Leak(리소스 누수) 형태이므로, 단독으로 권한 상승이나 원격 코드 실행을 일으키기보다는 시스템 가용성을 저해하는 DoS 상태를 유도하거나 다른 메모리 오염 취약점과 체이닝하여 커널 힙 상태를 조작하는 보조 수단으로 활용될 가능성이 큽니다.
💥 영향 분석
(1) 기술적 위험:
- 서비스 중단 (DoS): 커널 레벨의 Device Leak은 일반적인 프로세스 종료로 회수되지 않으며, 결국 메모리 고갈로 인해 시스템이 Crash 되거나 응답 불능 상태에 빠짐.
- 추정: 단순한 메모리 누수를 넘어, 특정 상황에서 잘못된 reference count로 인한 Use-After-Free(UAF) 가능성을 완전히 배제할 수 없으나, 본 CVE의 핵심은 Leak임.
(2) 비즈니스 영향:
- STM32 기반 임베디드 장치나 산업용 제어 시스템의 경우, 시스템 다운타임이 물리적 공정 중단이나 하드웨어 오작동으로 이어질 수 있어 가용성 측면에서 치명적임.
🔗 관련 취약점·체이닝
- 체이닝 경로:
Local Access$\rightarrow$Resource Exhaustion (Leak)$\rightarrow$System Crash. - 추정 체이닝: 단순 DoS 외에, 메모리 누수로 인해 커널 슬랩(Slab) 레이아웃이 변경된 상태에서 다른 메모리 오염 취약점(예: Buffer Overflow 또는 UAF)을 결합할 경우, 정교한 힙 스프레이(Heap Spraying)를 통해 권한 상승(LPE)으로 이어질 가능성이 있음. (유형 수준의 추정)
🔎 탐지
(1) 로그 지표: dmesg 또는 /var/log/kern.log 내에 DMA 관련 할당 오류나 메모리 부족(Out of memory) 메시지, 혹은 dmamux 관련 커널 워닝 발생 여부 확인.
(2) 탐지 규칙 예시:
- 로직: 특정 시간 동안 동일 사용자가 비정상적으로 많은 수의 DMA 채널 요청/해제 이벤트를 발생시키는지 모니터링.
- SIEM 쿼리(의사코드):
SELECT user, count(*) FROM kernel_events WHERE event_id = 'DMA_ROUTE_ALLOC' GROUP BY user HAVING count > [Threshold] WITHIN 1m
(3) 오탐 시나리오: 고성능 DMA 전송이 빈번한 정상적인 산업용 애플리케이션의 동작일 수 있음. 이를 줄이기 위해 Baseline을 측정하고, 할당량 대비 해제량이 현저히 적은 '불균형' 상태를 탐지하는 방식으로 튜닝 필요.
🛡️ 완화 방안
- 즉시(긴급 차단): STM32 DMA MUX 기능을 사용하지 않는 환경이라면 관련 커널 모듈 로드를 차단(
modprobe -r또는 blacklist 설정). (난이도: 하 / 영향: 기능 상실 위험) - 단기(완화): 시스템 리소스 모니터링 강화 및 비정상적인 메모리 점유율 상승 시 자동 재부팅 스크립트 운용. (난이도: 중 / 영향: 일시적 서비스 중단)
- 근본(해결): 영향받는 커널 버전(4.15.1 ~ 6.18.7 등)에서 수정된 최신 커널로 업데이트.
put_device가 적절히 호출되도록 수정된 패치 적용 필수. (난이도: 중 / 영향: 재부팅 필요, 호환성 테스트 필요)
[파이프라인 근거]
본 분석은 다중 소스 데이터의 일관성이 확인(신뢰도 1.0)된 사실을 기반으로 합니다. 실측 EPSS 값(0.00183, 백분위 0.08079)은 이론적 CVSS 점수와 별개로 실제 야생에서의 악용 가능성이 매우 낮음을 시사하며, 이에 따라 규칙 기반 우선순위를 monitor로 결정하였습니다. 이는 KEV 미등재 및 로컬 권한 필요(AV:L)라는 제약 조건이 반영된 결과입니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00183 · exploit=hard · in_scope=None