[단독공격] 분석 — CVE-2025-21702
The local‑privilege pfifo_tail_enqueue limit bypass can be weaponized to inflate qdisc queue length and cause kernel‑level denial of service; patch the kernel immediately.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00267 · 악용난이도 hard
🔍 공격 기법
-
공격 전제
- 로컬 환경에서
tc(netlink) 명령을 이용해 Qdisc 체인을 구성할 수 있는 권한이 필요합니다(PR:L). sch->limit값을0으로 설정 가능한 qdisc(pfifo_head_drop) 가 존재해야 합니다.
- 로컬 환경에서
-
공격 표면
/sbin/tc,iproute2의 netlink 인터페이스 → Qdisc 파라미터(limit) 수정- 패킷 전송 경로 : 사용자 공간 → NIC 입력 → 네트워크 스택 → 지정된 qdisc (
Qdisc_A→Qdisc_B)
-
단계별 흐름
- 정찰 –
tc qdisc show로 현재 인터페이스에 연결된 Qdisc 구조를 확인하고,hfsc(또는 다른 graft 지원)와pfifo_head_drop조합이 존재하는지 탐색합니다. - 초기 접근 –
tc qdisc change dev <iface> parent <id> pfifo_head_drop limit 0로Qdisc_B의limit을0으로 설정합니다(가능한 경우). - 실행·권한 획득 – 대상 인터페이스에 트래픽을 지속적으로 전송합니다(예:
ping -i 0.001).hfsc_enqueue가 호출된 뒤,pfifo_tail_enqueue가 실행됩니다.sch->limit == 0상황에서 기존 패킷이 없으면 드롭 단계가 무시되고 qlen 이 +1 증가하면서 함수는NET_XMIT_CN을 반환합니다. - 지속 – 위 과정을 반복하면 qdisc 의 내부
qlen값이 제한 없이 누적됩니다. 커널은 실제 큐 길이와sch->limit사이의 불일치를 감지하지 못해, 메모리 할당 및 스케줄링 로직에 비정상적인 부하가 발생합니다. - 영향 – 결국 qlen 과 연관된 메모리 구조가 포화되면서 패킷 전송이 차단되고, 커널 패닉 또는 시스템 전체 DoS 상태에 도달할 수 있습니다.
- 정찰 –
-
CVSS 벡터와 실제 조건 매핑
AV:L→ 로컬 netlink 인터페이스 사용AC:L→ 복잡도 낮음(단순tc파라미터 변경)PR:L→ 일반 사용자라도 CAP_NET_ADMIN 권한이 부여된 경우 가능(다수 배포판에서 기본 제공)UI:N→ 자동화 스크립트로 무인 실행 가능
💥 영향 분석
- 네트워크 서비스 중단 – qdisc 내부 큐가 비정상적으로 커지면서 패킷 전송이 지연·드롭되고, 결국 인터페이스가 멈춥니다.
- 커널 메모리 고갈 – 지속적인
qlen증가로 인한 동적 할당 실패는 커널 OOM 상황을 유발할 수 있습니다. - 전체 시스템 DoS – 네트워크 스택이 마비되면 서비스 데몬·프로세스가 응답하지 못해 전체 서버 가용성이 상실됩니다.
🔗 관련 취약점·체이닝
- 현재 공개된 CVE 중 이와 직접 연결되는 번호는 확인되지 않았습니다(추정: 다른 qdisc‑관련 메모리 관리 오류와 조합될 수 있음).
- 유형 –
CWE‑787(버퍼/큐 오버플로우)·CWE‑400(자원 소모) 패턴이 적용됩니다. - 체이닝 가능 시나리오
- 권한 상승 : 동일 호스트에 존재하는 CAP_NET_ADMIN 취약점(CVE‑xxxx‑yyyy)과 결합하면 비특권 사용자가 직접 이 로직을 이용할 수 있습니다.
- 정보 노출 : qdisc 상태를
/proc/net/혹은tc -s qdisc로 열람해 비정상적인qlen변동을 감지하고, 이를 기반으로 추가 공격(예: 커널 메모리 레이아웃 추론)으로 이어질 수 있습니다.
🔎 탐지
- 커널 로그 –
pfifo_tail_enqueue: limit 0, returning NET_XMIT_CN과 유사한 메시지가 기록되는 경우 알림. - eBPF/tracepoint –
net_dev_queue혹은sch_pfifo_tail_enqueue함수 호출 시sch->limit == 0 && qlen 증가를 모니터링. - 시스템 메트릭 – 인터페이스별
tx_queue_len급증, 평균 패킷 전송 지연 급등, 그리고 연속적인NET_XMIT_CN반환 카운트를 수집하면 이상 징후로 판단합니다.
🛡️ 완화 방안
- 패치 적용 – 해당 커밋이 포함된 최신 Linux kernel(5.4.292+, 5.10.236+, 5.15.180+, 6.1.131+, 6.2.84+, 6.6.84+, 6.7‑6.12.15, 6.13‑6.13.4) 으로 즉시 업데이트합니다.
- 구성 제한 –
pfifo_head_dropqdisc 에서limit 0설정을 금지하고, 최소 1 이상의 limit 값을 강제 적용합니다. - 권한 경계 강화 – CAP_NET_ADMIN 권한을 신뢰된 관리자에게만 부여하고, 일반 사용자 계정에서는
tc명령 실행을 차단합니다. - 모니터링 도입 – 위 탐지 항목을 포함한 실시간 알림 체계를 구축해 비정상적인 qlen 변동이 감지되면 자동으로 해당 Qdisc 을 재설정하거나 인터페이스를 재시작합니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00267 · exploit=hard · in_scope=None