[공격] 분석 — CVE-2025-71095
CVE-2025-71095 lets an unauthenticated remote attacker trigger a kernel panic or potential memory corruption through crafted zero‑copy XDP_TX packets on stmmac NICs, so immediate kernel patching is required.
📋 요약
- 심각도 critical · CVSS 9.1 · EPSS 0.00239 · 악용난이도 moderate
🔍 공격 기법
- 공격 표면: stmmac 이더넷 드라이버가 사용하는 AF_XDP zero‑copy 인터페이스. 네트워크 패킷(IPv4/IPv6) 자체가 트리거 입력이며, XDP 프로그램이
XDP_TX를 반환하도록 설계된 경우에만 발동합니다. - 전제 조건:
- 공격자는 대상 시스템의 NIC가 stmmac 드라이버(
stmmac_xdp_*)를 사용하고 있음을 확인해야 합니다(예:ethtool -i <iface>). - AF_XDP socket을 zero‑copy 모드(
XSK_POOL)로 열고, 사용자 정의 XDP 프로그램을 로드할 수 있어야 합니다(권한 제한이 없으므로 네트워크 접근만 있으면 충분).
- 공격자는 대상 시스템의 NIC가 stmmac 드라이버(
- 실행 흐름:
- 정찰 – NIC 종류와 커널 버전 확인(패킷‑레벨 프로브,
ethtool). - 초기 접근 – AF_XDP socket을 zero‑copy 모드로 생성하고, XDP 프로그램을 로드합니다.
- 트리거 – XDP 프로그램이 특정 조건에서
XDP_TX를 반환하도록 설계하고, 해당 패킷을 전송합니다. 이때xdp_buff는 페이지 풀 기반이 아닌 Zero‑copy XSK pool 기반이며, 변환 함수xdp_convert_buff_to_frame()은MEM_TYPE_PAGE_ORDER0을 설정하지만 이후stmmac_xdp_xmit_back()은 메모리 타입 검증을 수행하지 않습니다. - 커널 오버플로/오프셋 쓰기 –
__dma_sync_single_for_device()가 잘못된 메모리 영역을 캐시 플러시하면서 커널 주소fffeffff80000000에 접근, Oops 발생 → 시스템 패닉(DoS) 혹은 추정: 메모리 오염을 통한 임의 주소 쓰기(Write‑What‑Where) 가능성.
- 정찰 – NIC 종류와 커널 버전 확인(패킷‑레벨 프로브,
- CVSS ↔ 실제 조건 매핑: AV:N (네트워크 전용), AC:L (패킷 조작만으로 충분), PR:N (권한 없음), UI:N (사용자 상호 작용 불필요).
악용 가능성: 이 취약점은 AV:N(네트워크를 통한 원격 접근) + AC:L(공격 복잡도 낮음) + PR:N(권한 필요 없음) + UI:N(사용자 상호작용 불필요) 라는 CVSS 벡터가 그대로 실제 전제조건을 반영합니다. 즉, 공격자는 네트워크에 연결된 Linux 호스트에 XDP 프로그램을 로드할 수 있는 환경이면 별도의 인증 없이도 악성 패킷만 전송하면 됩니다. 공격 표면은 stmmac 네트워크 드라이버의 XDP_TX 경로이며, 노출되는 엔드포인트는 해당 NIC에 바인딩된 eBPF/XDP 프로그램이 실행되는 시점의 RX/TX 패킷 처리 루틴입니다. EPSS가 0.00239 로 매우 낮아 실제 악용 사례가 거의 없으며, KEV에 등재되지 않은 점은 현재까지 실
💥 영향 분석
- 성공 시 커널 패닉에 의해 서비스가 중단됩니다(C:H).
- 메모리 타입 검증 부재로 인한 오염이 가능할 경우, 공격자는 임의 주소에 데이터를 쓰고 커널 권한을 탈취하여 로컬 루트 획득(LPE)까지 확장될 수 있습니다(가능성은 현재 증거가 부족하므로 추정).
🔗 관련 취약점·체이닝
- 이 결함은 메모리 타입 불일치에 따른 CWE‑125 (Out‑of‑bounds Read) 와 CWE‑787 (Out‑of‑bounds Write) 로 분류될 수 있습니다.
- 동일 커널 라인에서 발견된
net: stmmac: fix the crash issue for zero copy XDP_TX action이전 버전은XDP프로그램 검증 부재로 인해 CWE‑20 (Improper Input Validation) 과 연결됩니다. - 체이닝 예시:
- 네트워크 접근 → XDP 프로그램 로드 (본 CVE)
- 메모리 오염 → 권한 상승 (가능성은 추정 수준, 다른 커널 메모리 관리 버그와 결합 시 LPE 가능)
🔎 탐지
- 커널 로그에 아래와 같은 Oops/패닉 메시지가 반복적으로 나타나는 경우:
Unable to handle kernel paging request at virtual address fffeffff80000000stmmac_xdp_xmit_back호출 스택 포함 (dcache_clean_poc,__dma_sync_single_for_device)
- 시스템 감시 도구(e.g.,
auditd,systemd-journald)에 위 문자열을 키워드로 설정하고, 발생 시 알림. - 네트워크 레벨에서는 AF_XDP zero‑copy 소켓을 사용하는 비정상적인 UDP/TCP 플로우(특히 XSK pool 사용) 감시가 도움이 됩니다.
🛡️ 완화 방안
- 즉시: 해당 커널 버전(5.13.1‑6.1.160, 6.2‑6.6.120, 6.7‑6.12.64, 6.13‑6.18.4 등)에서 제공되는 최신 패치를 적용하십시오.
- 임시: stmmac NIC에 대해 AF_XDP zero‑copy 모드를 비활성화하거나
ethtool -K <iface> rx-udp-gro-off와 같이 XDP 기능을 제한합니다. - 장기: 커널 업데이트 정책을 강화하고, 네트워크 인터페이스별 보안 프로파일(SELinux/AppArmor) 적용으로 비인가 AF_XDP 소켓 생성을 차단하십시오.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=9.1 · non-KEV · EPSS=0.00239 · exploit=moderate · in_scope=None