[분석가] 분석 — CVE-2024-56719
A DMA API misuse in the Linux kernel's stmmac driver can cause a system crash (Oops), requiring updates to affected kernel versions.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00209 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: priv->dma_cap.addr64 > 32 환경에서 TSO(TCP Segmentation Offload) 기능이 활성화된 상태로 네트워크 패킷을 전송할 때 발생합니다. 비페이지 SKB 데이터에 대해 DMA map/unmap의 불균형이 발생하여 잘못된 dma cookie가 dma_unmap_single()에 전달되는 것이 핵심입니다.
(2) 공격 단계:
- 초기 접근 및 권한 획득: 로컬 시스템에 대한 일반 사용자 권한(
PR:L)이 필요합니다. - 실행: TSO 기능을 유발하는 네트워크 트래픽을 생성하여 커널 드라이버의 DMA API 오용을 트리거합니다.
- 영향: 잘못된 메모리 주소 해제 시도로 인한 커널 Oops 및 시스템 크래시가 발생합니다.
(3) 공격 표면:stmmac네트워크 드라이버를 사용하는 이더넷 인터페이스와 TSO 기능이 노출 지점입니다.
(4) CVSS 벡터 연결:AV:L/AC:L/PR:L/UI:N은 로컬 권한을 가진 사용자가 특별한 상호작용 없이 낮은 복잡도로 시스템 가용성을 저해(A:H)할 수 있음을 의미합니다.
악용 가능성: 본 취약점은 AV:L/AC:L/PR:L/UI:N 벡터를 가지며, 공격자가 대상 시스템에 대한 최소한의 권한(PR:L)을 이미 확보하고 로컬 환경에서 접근해야 하므로 공격 난이도는 Hard로 판정됩니다. 공격 표면은 Linux kernel 내 stmmac 네트워크 드라이버의 TSO(TCP Segmentation Offload) DMA API 처리 로직이며, 특히 64비트 주소 체계(addr64 > 32)를 사용하는 환경에서 dma_map_single과 dma_unmap_single 간의 쿠키 불일치로 인한 커널 Oops(Crash)가 트리거됩니다. EPSS 수치가 0.00209로 매우 낮고 KEV에 등재되지 않은 점은 현재 야생에서 이 취약점을 이용한 능동적인 익스플로잇 시도가 거의 관측되지 않았음을 의미합니다. 이론적인 심각도와 별개로, 공격자가 로컬 권한을 획득한 상태에서 특정 네트워크 하드웨어 구성과 TSO 기능을 정밀하게 조작해야 한다는 제약 조건이 존재하여 실제 악용 가능성은 낮습니다. 결과적으로 본 취약점은 원격 코드 실행보다는 시스템 가용성을 저해하는 서비스 거부(DoS) 형태의 리스크를 가지며, 제한적인 공격 전제조건으로 인해 실질적인 위협 수준은 낮은 것으로 분석됩니다.
💥 영향 분석
(1) 기술적 위험: 커널 패닉으로 인한 서비스 중단(Denial of Service)이 발생합니다. DMA_API_DEBUG 활성화 시 할당되지 않은 DMA 메모리를 해제하려는 시도가 기록되며 시스템이 정지됩니다.
(2) 비즈니스 영향: 해당 네트워크 드라이버를 사용하는 서버나 임베디드 장비의 가용성이 즉각적으로 상실됩니다. 다만, 원격 공격이 불가능한 로컬 취약점이므로 외부 노출 규모는 제한적이며, 내부자에 의한 서비스 거부 공격 리스크가 주된 관점입니다.
🔗 관련 취약점·체이닝
추정: 본 취약점은 단독으로 시스템 가용성을 파괴하는 DoS 유형입니다. 다만, 메모리 오염이나 잘못된 DMA 매핑 패턴을 이용해 커널 메모리의 임의 영역에 영향을 줄 수 있는 다른 메모리 관리 결함과 체이닝될 경우, 추정: 단순 크래시를 넘어 권한 상승(LPE)으로 이어질 가능성을 배제할 수 없으나 현재 근거는 부족합니다.
🔎 탐지
(1) 로그 지표: 커널 로그(dmesg, /var/log/syslog) 내 stmmac 및 DMA-API 관련 에러 메시지를 모니터링합니다.
(2) 탐지 규칙 예시:
- 패턴 1 (Tx DMA 실패):
grep "Tx DMA map failed" /var/log/kern.log - 패턴 2 (DMA API 디버그 로그):
grep "device driver tries to free DMA memory it has not allocated" /var/log/kern.log - 로직:
if (log_message contains "dwc-eth-dwmac" AND "free DMA memory") then Alert(High, DoS_Attempt)
(3) 오탐 시나리오 및 튜닝: 하드웨어 결함이나 드라이버의 일시적 오류로 인해 유사 로그가 발생할 수 있습니다. 특정 네트워크 인터페이스(eth0등)에서 반복적으로 발생하는지 빈도를 확인하여 튜닝합니다.
🛡️ 완화 방안
- 즉시(긴급 차단): TSO 기능을 비활성화하여 취약한 코드 경로 진입을 차단합니다. (예:
ethtool -K <interface> tso off). [난이도: 하 / 영향: 네트워크 성능 저하 가능성 / 검증:ethtool -k로 설정 확인] - 단기(완화): 영향을 받는 시스템의 접근 제어를 강화하여 신뢰되지 않는 사용자의 로컬 쉘 접근을 제한합니다. [난이도: 중 / 영향: 운영 편의성 감소 / 검증: SSH 및 sudo 권한 리스트 점검]
- 근본(해결): 취약점이 해결된 커널 버전으로 업데이트합니다. (대상: 5.15.171-5.16, 6.1.116-6.2, 6.6.60-6.6.68, 6.11.7-6.12.7 등 영향 범위 내 최신 패치 적용). [난이도: 중 / 영향: 재부팅 필요로 인한 일시적 서비스 중단 / 검증:
uname -r로 커널 버전 확인]
[분석 근거] 본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, 실측 EPSS 값(0.00209)과 CVSS 5.5, 로컬 공격 벡터(AV:L) 및 KEV 미등재 사실을 근거로 우선순위를 monitor로 결정하였습니다. 이는 이론적 심각도보다 실제 야생 악용 가능성이 매우 낮음을 반영한 규칙 기반 판단입니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00209 · exploit=hard · in_scope=None