[공격] 분석 — CVE-2024-56719
A DMA API misuse in the Linux kernel's stmmac driver causes a system crash (Oops), requiring kernel updates to affected versions.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00209 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: priv->dma_cap.addr64 > 32 환경에서 TSO(TCP Segmentation Offload) 기능을 사용하여 패킷을 전송할 때, DMA cookie 값이 오프셋(proto_hdr_len)으로 인해 변조되어 dma_unmap_single()에 잘못된 주소가 전달될 때 발생함.
(2) 공격 단계:
- 정찰: 대상 시스템의 커널 버전 및
stmmac드라이버 사용 여부, TSO 활성화 상태 확인. - 초기 접근: 로컬 사용자 권한 획득 (AV:L, PR:L 조건).
- 실행: 네트워크 인터페이스를 통해 TSO가 적용되는 대량의 패킷 전송 트리거.
- 영향: 커널 내
dma_unmap_single()호출 시 잘못된 DMA cookie 참조 $\rightarrow$ Kernel Oops 발생 $\rightarrow$ 시스템 Panic 및 가용성 상실(DoS).
(3) 공격 표면:
- 대상 함수:
stmmac_tso_xmit(),stmmac_tx_clean() - 프로토콜/기능: TCP TSO (TCP Segmentation Offload)
- 하드웨어 조건: 64비트 DMA 주소 공간을 사용하는 특정 NIC (
stmmac드라이버 기반).
(4) CVSS 벡터 연결: AV:L/PR:L은 공격자가 이미 시스템에 로그인한 상태여야 함을 의미하며, UI:N은 사용자 상호작용 없이 트리거 가능함. A:H는 커널 패닉으로 인한 즉각적인 서비스 중단을 뜻함.
악용 가능성: 본 취약점은 Linux kernel의 stmmac 드라이버 내 TSO(TCP Segmentation Offload) 처리 과정에서 DMA map/unmap 불일치로 인해 발생하는 Kernel Oops 유발 결함입니다. 공격 벡터가 AV:L 및 PR:L인 점을 고려할 때, 공격자는 이미 시스템에 낮은 권한의 계정으로 접근하여 네트워크 인터페이스를 제어하거나 특정 패킷 전송을 트리거할 수 있는 로컬 실행 권한을 확보해야 합니다. 특히 priv->dma_cap.addr64 > 32 조건과 같이 특정 하드웨어 아키텍처 및 드라이버 설정이 일치해야 하며, TSO가 활성화된 상태에서 non-paged SKB 데이터를 전송하는 정밀한 트리거 조건이 필요하므로 공격 난이도는 hard로 판정됩니다. EPSS 수치가 0.00209로 낮고 KEV에 등재되지 않은 것은 현재 이 취약점을 이용해 원격에서 자동화된 공격을 수행하는 사례가 드물며, 실질적인 위협은 로컬 권한 상승(LPE)이나 서비스 거부(DoS)를 노리는 타겟팅 공격에 국한됨을 시사합니다. 주요 공격 표면은 stmmac_tso_xmit() 함수와 이를 호출하는 네트워크 스택의 전송 경로이며, DMA cookie 값이 오염된 상태로 dma_unmap_single()에 전달되는 지점이 핵심 트리거 포인트입니다. 결과적으로 이론적 심각도보다는 특정 하드웨어 환경과 로컬 접근 권한이라는 제약 사항이 공격 실현 가능성을 크게 낮추는 요소로 작용합니다.
💥 영향 분석
(1) 기술적 위험:
- 시스템 가용성 파괴: Kernel Oops 및 Crash로 인한 전체 시스템 다운(Denial of Service).
- 추정: 메모리 오염 가능성은 낮으나, DMA API 디버그 모드에서 확인된 것처럼 잘못된 메모리 해제 시도가 발생함.
(2) 비즈니스 영향:
- 서비스 중단: 해당 NIC를 사용하는 서버/임베디드 장비의 갑작스러운 재부팅으로 인한 서비스 다운타임 발생.
- 가용성 저하: 인프라 수준의 장애로 이어져 SLA 미준수 위험이 있음.
🔗 관련 취약점·체이닝
(1) 체이닝 경로:
- 추정: 단독으로는 DoS에 그치지만, 다른 커널 메모리 손상 취약점과 결합될 경우 DMA 매핑 불일치를 이용한 임의 메모리 읽기/쓰기로 확장될 가능성이 있음 (DMA Misconfiguration $\rightarrow$ Memory Corruption $\rightarrow$ Privilege Escalation).
- 유형 수준:
Incorrect DMA Mapping$\rightarrow$Kernel Panic또는 추정:Use-After-Free / Double Free패턴으로 이어질 수 있는 구조적 결함.
🔎 탐지
(1) 로그 지표: 커널 링 버퍼(dmesg) 내 특정 드라이버 오류 및 DMA API 경고 메시지.
- 키워드:
stmmac,Tx DMA map failed,DMA-API,device driver tries to free DMA memory it has not allocated
(2) 탐지 규칙:
- Logic 1 (dmesg 모니터링):
grep -E "dwc-eth-dwmac.*Tx DMA map failed|DMA-API.*free DMA memory it has not allocated" /var/log/kern.log - Logic 2 (SIEM):
event_id == KERNEL_LOG AND message CONTAINS "stmmac" AND message CONTAINS "Oops"
(3) 오탐 시나리오: 하드웨어 자체 결함이나 드라이버 버그로 인한 단순 crash일 수 있음. TSO 활성화 상태와 패킷 전송 패턴이 일치하는지 교차 확인하여 튜닝.
🛡️ 완화 방안
즉시(긴급 차단):
ethtool -K <interface> tso off명령으로 TSO 기능 비활성화. (난이도: 하 / 영향: 네트워크 성능 저하 가능성 / 검증:ethtool -k로 설정 확인)
단기(완화):
- 영향을 받는 인터페이스의 트래픽 제어 및 로컬 사용자 권한 제한 (Privilege 최소화). (난이도: 중 / 영향: 운영 정책 변경 필요 / 검증: 권한 체크 리스트 확인)
근본(해결):
- 커널 업데이트 수행. 영향 제품 버전(
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(백분위 0.11264)를 근거로 실제 악용 가능성이 매우 낮음(hard)을 확인했습니다. CVSS 5.5 및 non-KEV 상태임을 고려하여 우선순위를 'monitor'로 결정하였습니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00209 · exploit=hard · in_scope=None