[공격] 분석 — CVE-2025-71191
A device leak in the
at_hdmacdriver'sof_dma_xlate()function can lead to kernel resource exhaustion, requiring monitoring and eventual kernel patching.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00183 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: Linux 커널의 DMA 엔진 드라이버인 at_hdmac에서 of_dma_xlate() 함수가 호출될 때 발생한다. DMA 플랫폼 장치를 조회하며 증가시킨 참조 카운트(reference count)를 자원 해제 시점에 적절히 감소(put_device())시키지 않아 메모리/객체 누수가 발생한다.
(2) 공격 단계:
- 정찰: 대상 시스템의 커널 버전 및
at_hdmac드라이버 활성화 여부 확인. - 초기 접근: 로컬 사용자 권한 획득 (AV:L, PR:L).
- 실행/영향: DMA 채널 자원을 반복적으로 할당하고 해제하는 작업을 수행하여 커널 내 장치 객체 누수를 유도한다.
- 결과: 가용 메모리 고갈 및 커널 패닉(Kernel Panic)으로 인한 시스템 중단(DoS).
(3) 공격 표면: at_hdmac 드라이버와 상호작용하는 DMA 채널 할당/해제 인터페이스. 추정: 특정 하드웨어 장치를 제어하는 드라이버나 커널 모듈을 통해 해당 함수를 반복 호출함으로써 트리거 가능하다.
(4) CVSS 벡터 분석:
- AV:L (Local): 로컬 접근 권한이 필요함.
- AC:L (Low): 공격 복잡도가 낮음.
- PR:L (Low): 일반 사용자 수준의 권한으로 실행 가능함.
- UI:N (None): 사용자 상호작용 불필요.
- 결과적으로, 로컬 권한을 가진 공격자가 시스템 자원을 고갈시켜 가용성을 파괴(A:H)하는 시나리오다.
악용 가능성: 본 취약점은 AV:L 및 PR:L 벡터가 시사하듯, 이미 시스템에 낮은 권한의 쉘을 확보한 공격자가 커널 내부의 리소스 누수를 유발해야 하는 구조로 공격 난이도가 매우 높습니다(hard). 공격 표면은 Linux kernel의 dmaengine 서브시스템 내 of_dma_xlate() 함수이며, DMA 채널 리소스를 할당하고 해제하는 과정에서 put_device() 호출 누락으로 인해 Device Object의 Reference Count가 비정상적으로 유지되는 지점이 트리거 조건입니다. EPSS 수치가 0.00183으로 매우 낮고 KEV에 등재되지 않은 점은, 이 결함이 즉각적인 RCE나 권한 상승으로 이어지는 직접적인 경로보다는 시스템 자원을 고갈시키는 Resource Leak 성격이 강함을 의미합니다. 실전 관점에서 단일 취약점만으로는 치명적이지 않으나, 공격자가 특정 장치 드라이버를 반복적으로 로드/언로드하며 커널 메모리 파편화를 유도하거나 Slab 할당자의 상태를 조작하는 Heap Spraying의 전 단계로 활용할 가능성이 있습니다. 결과적으로 이 취약점은 단독 악용보다는 다른 Kernel Memory Corruption 취약점과 체이닝하여, 정교하게 설계된 힙 레이아웃을 형성함으로써 공격 성공률을 높이는 보조 수단으로 사용될 가능성이 큽니다.
💥 영향 분석
(1) 기술적 위험: 커널 메모리 내 장치 객체 누수로 인한 Resource Exhaustion. 지속적인 누수는 결국 OOM(Out of Memory) 상황을 유발하거나 커널 크래시를 일으켜 시스템 전체의 가용성을 상실시킨다.
(2) 비즈니스 영향: 서버 다운타임으로 인한 서비스 중단 및 업무 연속성 저해. 다만, 권한 상승이나 데이터 유출로 이어지지는 않으므로 기밀성/무결성 영향은 없다.
🔗 관련 취약점·체이닝
- 체이닝 경로: 추정: 단독으로는 DoS 공격에 그치지만, 다른 커널 메모리 손상(Memory Corruption) 취약점과 결합될 경우, 특정 메모리 레이아웃을 강제하는 Heap Spraying의 보조 수단으로 활용되어 권한 상승(LPE)의 성공률을 높이는 용도로 쓰일 가능성이 있다.
- 유형 수준: Resource Leak $\rightarrow$ Denial of Service $\rightarrow$ (추정: Memory Layout Manipulation $\rightarrow$ Privilege Escalation).
🔎 탐지
(1) 로그 지표: dmesg 또는 /var/log/syslog 내의 DMA 관련 에러 메시지 및 OOM Killer 작동 로그.
(2) 탐지 규칙:
- 로직 1 (Slab Leak):
slabtop또는/proc/slabinfo에서device또는at_hdmac관련 슬랩 객체 수가 비정상적으로 지속 증가하는 패턴 감시. - 로직 2 (System Log):
grep -E "out of memory|kernel panic|dmaengine"등을 통해 커널 이상 징후 탐지. - 로직 3 (Resource Monitoring): 특정 프로세스가 짧은 시간 내에 비정상적으로 많은 수의 DMA 채널 요청을 반복하는 행위 모니터링.
(3) 오탐 시나리오: 하드웨어 드라이버의 정상적인 초기화 과정이나 대량의 I/O 작업 시 일시적 자원 증가가 발생할 수 있다. 임계값을 설정하고 시간당 증가율(Rate of Increase)을 기준으로 튜닝해야 한다.
🛡️ 완화 방안
- 즉시(긴급 차단): 해당 드라이버(
at_hdmac)를 사용하지 않는 환경이라면 모듈 로딩을 차단한다. (난이도: 하 / 영향: 낮음 / 검증:lsmod확인) - 단기(완화): 커널 메모리 모니터링 툴을 도입하여 비정상적인 Slab 증가를 감시하고, 이상 징후 발생 시 해당 프로세스를 강제 종료한다. (난이도: 중 / 영향: 낮음 / 검증: 모니터링 대시보드)
- 근본(해결):
of_dma_xlate()에서 누락된put_device()호출이 포함된 최신 커널 버전으로 업데이트한다. (난이도: 중 / 영향: 재부팅 필요/가용성 일시 저하 / 검증:uname -r및 패치 커밋 적용 확인)
※ 이 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, EPSS 0.00183(백분위 0.08079)의 낮은 실측 악용 예측값과 AV:L/PR:L 조건을 근거로 'monitor' 우선순위가 결정된 결과이다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00183 · exploit=hard · in_scope=None