[단독분석] 분석 — CVE-2025-71221
A race condition in the Linux kernel's mmp_pdma driver leads to a Use-After-Free (UAF) vulnerability, requiring immediate patching of affected kernel versions to prevent potential local privilege escalation or system instability.
📋 요약
- 심각도 high · CVSS 7.0 · EPSS 0.00095 · 악용난이도 hard
🔍 공격 기법
본 취약점은 dmaengine의 mmp_pdma 드라이버 내 mmp_pdma_residue() 함수에서 적절한 Locking 메커니즘이 부재하여 발생하는 Race Condition입니다.
- 경로: 다중 스레드가 동일 채널에 대해 동시에
tx_status()를 호출하는 상황에서 발생합니다. - 단계:
- CPU 0이 Lock 없이
chain_running리스트의 엔트리를 순회하며 접근하는 동안, - CPU 1에서 DMA 인터럽트가 발생하여
dma_do_tasklet()이 실행되고,desc_lock을 획득하여 완료된 디스크립터를 리스트에서 제거한 후dma_pool_free()를 통해 메모리를 해제합니다. - 이후 CPU 0이 이미 해제된 메모리(
sw->desc)에 접근함으로써 Use-After-Free(UAF) 상태가 촉발됩니다.
- CPU 0이 Lock 없이
악용 가능성: 본 취약점은 Linux kernel의 dmaengine 내 mmp_pdma_residue() 함수에서 발생하는 Race Condition으로, 공격 난이도는 매우 높습니다(Hard). CVSS 벡터상 Local 접근(AV:L)과 높은 공격 복잡도(AC:H)가 요구되며, 공격자는 시스템에 이미 낮은 권한의 계정(PR:L)을 확보한 상태에서 정밀하게 타이밍을 맞춘 멀티스레드 요청을 보내야 합니다. 구체적인 공격 표면은 DMA 인터럽트 처리 과정과 tx_status() 호출 간의 동기화 부재이며, 특히 Tasklet이 descriptor를 해제하는 시점에 동시에 접근하여 Use-After-Free(UAF)를 유발하는 것이 트리거 조건입니다. EPSS 수치가 0.00095로 매우 낮고 KEV에 등재되지 않은 점은 현재 야생(In-the-wild)에서의 실제 악용 사례가 관측되지 않았음을 시사합니다. 따라서 이론적인 심각도와 별개로, 특정 하드웨어 드라이버 환경과 정교한 타이밍 제어가 필요하므로 실질적인 악용 가능성은 극히 제한적입니다.
💥 영향 분석
- 기술적 위험: 로컬 공격자가 특수하게 설계된 다중 스레드 환경(예:
dmatest활용)을 통해 커널 메모리 오염을 유도할 수 있습니다. UAF 특성상 추정: 임의 코드 실행을 통한 권한 상승(LPE) 또는 커널 패닉으로 인한 시스템 가용성 상실(DoS)이 가능합니다. - 비즈니스 리스크: 영향 제품이
linux_kernel 3.16 - 6.18.10까지 광범위하게 분포되어 있어, 해당 커널을 사용하는 임베디드 장비나 서버 인프라의 신뢰성 및 가용성에 직접적인 타격을 줄 수 있습니다. - 분석 근거: 다중 소스 데이터 간 일관성이 확인(신뢰도 1.0)되었으며, CVSS 7.0(High)으로 평가되었습니다. 다만, 공격 복잡도가 높고(
AC:H) 로컬 접근 권한이 필요하여(AV:L), 실제 야생에서의 악용 가능성은 낮을 것으로 분석됩니다.
🔗 관련 취약점·체이닝
- 패턴: 전형적인 커널 내 Race Condition 및 메모리 관리 오류(UAF) 패턴입니다.
- 체이닝: 추정: 로컬 권한을 가진 공격자가 다른 커널 취약점과 체이닝하여 제한된 권한에서 루트 권한으로 상승시키는 경로로 활용될 수 있습니다.
🔎 탐지
- 동적 분석:
dmatest와 같이 동일 채널에 다중 스레드(threads_per_chan > 1)를 할당하여 DMA 전송을 수행하는 비정상적인 워크로드 모니터링. - 커널 로그: 커널 패닉 발생 시
mmp_pdma_residue함수 호출 스택 및 메모리 액세스 위반(General Protection Fault 등) 로그 확인.
🛡️ 완화 방안
- 근본 해결:
mmp_pdma_residue()내의 리스트 순회 및 디스크립터 접근 과정에chan->desc_lockspinlock을 적용한 최신 커널 패치를 적용하십시오. - 우선순위 근거: EPSS 수치가 0.00095(백분위 0.00795)로 매우 낮고 KEV에 등재되지 않았으며, 실측 악용 난이도가 'hard'인 점을 고려하여 이번 주 내(
scheduled) 대응하는 것으로 우선순위를 결정하였습니다. 이는 이론적 심각도(CVSS)보다 실제 악용 가능성이 현저히 낮음을 반영한 규칙 기반 결정입니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.0 · non-KEV · EPSS=0.00095 · exploit=hard · in_scope=None