[분석가] 분석 — CVE-2026-31504
CVE-2026-31504 is a local use‑after‑free in Linux kernel packet fanout handling that can grant full kernel compromise, and administrators should prioritize applying the upstream patch immediately.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00135 · 악용난이도 hard
🔍 공격 기법
packet_release()와NETDEV_UP사이의 레이스 윈도우에서 팬아웃 소켓이 배열에 남은 dangling pointer가 생성됩니다.- 제한된 권한(Low privilege) 사용자가 네트워크 인터페이스를
UP상태로 전환하거나, 멀티캐스트 패킷·netfilter hook을 이용해 연속적인 트래픽을 전송하면 해당 레이스를 강제할 수 있습니다. - 레이스가 발생하면
__fanout_link()가 소켓을 다시 배열에 삽입하지만f->sk_ref를 증가시키지 않아 UAF가 발생하고, 공격자는 커널 주소 공간에서 임의 코드를 실행해 루트 권한을 획득합니다.
악용 가능성: AV:L(로컬) 벡터에 따라 공격자는 대상 시스템에 직접 접근할 수 있어야 하며, AC:L(낮은 복잡도)와 PR:L(낮은 권한)으로 인해 관리자 권한 없이 일반 사용자 계정만으로도 레이스 조건을 유발할 수 있습니다. UI:N(사용자 상호작용 없음)이라 공격이 자동으로 진행되므로 별도의 피싱이나 악성 파일 실행이 요구되지 않습니다. EPSS = 0.00135라는 실측값은 현재까지 실제 악용 사례가 매우 드물다는 것을 의미하며, KEV에 등재되지 않은 점도 아직 활발한 악용이 관측되지 않았음을 뒷받침합니다. 공격 표면은 Linux 커널의 net 서브시스템에서 AF_PACKET 소켓을 이용한 fan‑out 기능이며, packet_release()와 NETDEV_UP 이벤트가 동시에 진행되는 상황에서 fanout_arr[]에 남는 dangling pointer를 통해 권한 상승이 가능해집니다. 해당 엔드포인트는 커널 내부 데이터 구조이므로 외부 네트워크 인터페이스 자체가 직접 노출되지는 않지만, 로컬 프로세스가 패킷 소켓을 열어야만 트리거될 수 있습니다. 따라서 난이도는 “hard”로 평가되며, 실제 공격 가능성은 낮지만 로컬 권한을 가진 악의적인 사용자가 존재할 경우 위험 요소가 남아 있음을 인지하셔야 합니다.
💥 영향 분석
- 기술적 결과: 성공적인 익스플로잇은 커널 수준에서 임의 코드 실행(RCE)·전체 시스템 장악·커널 패닉(DoS)을 초래합니다.
- 비즈니스 리스크:
- 가용성 손실 – 서비스 중단 및 복구 비용 증가.
- 무결·기밀 위협 – 공격자는 루트 권한으로 데이터 탈취·변조가 가능, 규제·컴플라이언스 위반 위험이 큼.
- 영향 제품·노출 규모: 다중 소스 교차검증 결과(신뢰도 1.0)로 다음 커널 버전 전부에 존재함이 확인되었습니다.
linux_kernel 3.1.1‑5.10.2535.11‑5.15.2035.16‑6.1.1686.2‑6.6.1316.7‑6.12.806.13‑6.18.216.19‑6.19.11
따라서 주요 리눅스 배포판(예: Ubuntu 20.04 LTS, RHEL 8/9 등)에서 광범위하게 노출됩니다.
🔗 관련 취약점·체이닝
- 동일한 팬아웃 구조를 이용한 CVE-2025-38617 와 유사한 레이스 기반 UAF가 존재합니다.
- 이와 결합해
netfilter훅 조작·멀티캐스트 스프레이 등 메모리 레이아웃을 맞추는 단계가 추가되면, 로컬 권한 상승 후 원격 코드 실행(RCE)까지 연쇄될 가능성이 있습니다(※ 현재 공개된 PoC는 없음).
🔎 탐지
- 커널 로그에
fanout배열의 포인터 무효화 혹은packet_release후__fanout_link호출이 비정상적으로 연속되는 경우(dmesg/journalctl에서 “dangling pointer in fanout array” 유사 메시지) 감시. - eBPF 또는 auditd 규칙으로
netdev_up→packet_release→__fanout_link순서가 짧은 시간(≤ ms) 안에 발생하는 트레이스 포인트를 캡처. 예시 패턴:
1tracepoint:net:net_dev_event state=UP 2kprobe:packet_release 3kprobe:__fanout_link if f->num_members > 0 && f->sk_ref == 0- 비정상적인 멀티캐스트 트래픽(특히 동일 MAC/IPv4 주소로 연속 전송) 증가 시 알림 설정.
🛡️ 완화 방안
- 패치 적용 – 상위 배포판에서 제공하는 최신 커널 (예: 6.19.12 이상 또는 해당 버전의 backport 패치)으로 즉시 업데이트.
- 임시 방어 – 팬아웃 소켓(
SO_ATTACH_REUSEPORT_CBPF등)을 사용 중인 서비스가 있다면 비활성화하거나,net.ipv4.conf.all.mc_forwarding=0,net.ipv6.conf.all.mc_forwarding=0로 멀티캐스트 포워딩을 차단. - 네트워크 정책 – 외부에 노출된 인터페이스에서 불필요한 멀티캐스트/브로드캐스트 트래픽을 제한하는 방화벽 규칙 적용.
- 모니터링 강화 – 위 탐지 패턴을 기반으로 실시간 알림 및 로그 수집 체계 구축.
우선순위 판단: 교차검증에서 일관성을 확인했으며, CVSS 7.8·non‑KEV·EPSS 0.00135(실측 악용 가능성 낮음)·exploit hard 라는 규칙 기반 점수를 고려해 이번 주 내 scheduled 로 패치 작업을 진행하는 것이 권고됩니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00135 · exploit=hard · in_scope=None