[방어] 분석 — CVE-2026-31416
The Linux kernel nfnetlink_log size‑calculation bug can cause local WARN log flooding and service disruption, and the fastest mitigation is to disable the nfnetlink_log module or block netlink socket creation until a patched kernel is deployed.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.0012 · 악용난이도 hard
🔍 공격 기법
- 로컬 사용자가 AF_NETLINK 소켓을 열어
NFNL_SUBSYS_NFLOG서브시스템에 조작된 Netlink 메시지를 전송한다. - 커널은 NLMSG_DONE 헤더 전체 길이를 고려하지 않아 경고(WARN) 로그를 출력하고 해당 메시지를 드롭한다.
- 반복적인 메시지 전송으로 dmesg 링버퍼가 포화되면 다른 프로세스의 로그 수집 파이프라인이 마비되어 SIEM 알림 임계치를 우회하거나 서비스 가용성을 저해한다.
악용 가능성: 1. CVSS AV:L·AC:L·PR:L·UI:N 은 “공격자는 로컬에 존재하고, 낮은 권한(일반 사용자)만으로도 추가적인 인터랙션 없이 바로 악용 가능”함을 의미합니다.
2. 그러나 EPSS 0.0012 (0.12 %)와 KEV 미등재는 현재까지 실전에서 이 취약점이 활용된 사례가 거의 없으며, 실제 위협 수준이 낮다는 점을 뒷받침합니다.
3. 공격자는 nfnetlink log Netlink 소켓(NFNL_SUBSYS_NFLOG)으로 임의의 Netlink 메시지를 전송할 수 있는 권한만 있으면 되며, 이는 컨테이너 내부나 로컬 프로세스가 일반 사용자 계정으로도 접근 가능한 인터페이스입니다.
4. 트리거 조건은 NLMSG_DONE 헤더 크기를 잘못 계산한 상태에서 특수하게 조작된 Netlink 메시지를 전송하는 것이며, 이때 커널은 WARN 로그를 출력하고 해당 메시지를 폐기합니다.
5. 노출되는 공격 표면은 netfilter nfnetlink_log 모듈이 로드된 시스템의 Netlink 인터페이스이며, 별도의 네트워크 포트나 원격 서비스가 존재하지 않으므로 외부에서 직접 접근하기는 불가능합니다.
6. 따라서 난이도는 “로컬·
💥 영향 분석
- 가용성(A): WARN 로그와 메시지 드롭으로 nfnetlink_log 기반 로깅이 중단되고, dmesg 버퍼 포화 시 전체 호스트의 로그 수집·모니터링이 마비될 수 있다.
- 기밀성(C)·무결성(I): 직접적인 영향 없음(C:N/I:N).
🔗 관련 취약점·체이닝
- 추정: Netlink 헤더 길이 검증 부재는 일반적으로 CWE‑20(Improper Input Validation)과 연관될 수 있다.
- 유사한 커널 Netfilter 처리 오류와 결합하면, 로그 플러딩을 이용해 다른 서비스의 탐지를 방해하고 이후 권한 상승·네트워크 차단 공격으로 이어질 가능성이 존재한다.
🔎 탐지
- 로그 출처:
dmesg/ syslog (kernel)- 패턴:
"nfnetlink_log.*WARN"문자열 포함 - SIEM 쿼리 예시 (Elastic Kibana DSL)
- 패턴:
1{ 2 "query": { 3 "bool": { 4 "must": [ 5 { "match_phrase": { "message": "nfnetlink_log" } }, 6 { "match_phrase": { "message": "WARN" } } 7 ], 8 "filter": [ 9 { "term": { "process.name": "nfnetlink_log" } }10 ]11 }12 }13}-
임계값: 동일 호스트에서 1분당 WARN 발생 횟수가 5회를 초과하면 알림.
-
ProcFS 통계:
/proc/net/netfilter파일의log_dropped카운터- 쿼리 예시 (Splunk)
1index=procfs source="/proc/net/netfilter" log_dropped>10 2| stats sum(log_dropped) as dropped by host 3| where dropped > avg(dropped)*3-
급증 시 경보 발생.
-
Audit 로그:
auditd에서 netlink 소켓 생성 이벤트 감시- 패턴: type=NETLINK, uid≤1000 (비특권 사용자)
- 쿼리 예시 (Graylog)
1source:auditd AND message:"netlink_socket" AND uid:[0 TO 1000]- 오탐 튜닝
- 커널 업데이트 후 초기 WARN가 일시적으로 증가할 수 있으므로, 배포 직후 30분간 임계값을 기존의 2배로 완화한다.
- 특정 디바이스 드라이버가 동일 문자열을 출력하는 경우
process.name또는source_module필터링으로 제외한다.
🛡️ 완화 방안
- 즉시(긴급 차단)
- nfnetlink_log 모듈 비활성화:
1modprobe -r nfnetlink_log # 메모리 상에서 언로드 2echo "install nfnetlink_log /bin/true" > /etc/modprobe.d/disable-nfnetlink.conf-
난이도 ★★ (단일 명령) – 서비스 가용성에 큰 영향 없이 로그 기능만 일시 중단.
-
검증:
lsmod | grep nfnetlink_log로 모듈 존재 여부 확인. -
단기(완화)
- Netlink 소켓 생성 제한:
/proc/sys/net/netfilter/nf_log_all_netns값을 0으로 고정하고, CAP_NET_ADMIN 검사를 강화한다.
- Netlink 소켓 생성 제한:
1sysctl -w net.netfilter.nf_log_all_netns=0 2echo "net.netfilter.nf_log_all_netns = 0" >> /etc/sysctl.d/99-nfnetlink.conf-
SELinux/AppArmor 정책에 비특권 사용자의
AF_NETLINK생성 차단 규칙 추가. -
난이도 ★★★ – 시스템 보안 정책 수정 필요, 일부 애플리케이션(예: 컨테이너 런타임)에서 정상 동작 여부 사전 테스트 권장.
-
검증:
sysctl net.netfilter.nf_log_all_netns로 값 확인 및ausearch -m AVC -ts recent | grep netlink로 차단 로그 검토. -
근본(해결)
- 취약이 포함된 커널 버전을 패치된 버전으로 업그레이드한다.
- 영향을 받는 범위: 3.10.61‑3.11, 3.12.34‑3.13, …, 6.7‑6.12.81 등 (공식 배포판의 최신 보안 업데이트 적용).
- 난이도 ★★★★★ – 커널 교체·재부팅 필요, 드라이버/모듈 호환성 검증 필수.
- 검증:
uname -r로 버전 확인 후, 해당 커밋(또는 패치) 포함 여부를grep -i nfnetlink_log로 소스 확인하거나 배포판 릴리즈 노트를 참조한다.
- 취약이 포함된 커널 버전을 패치된 버전으로 업그레이드한다.
-
잔여 리스크
- 패치 적용 전까지 위 즉시·단기 조치를 시행하면 로그 플러딩 기반 DoS와 탐지 회피 위험을 크게 낮출 수 있다.
- 커널 자체의 WARN 출력은 여전히 발생할 가능성이 있으나, 모듈 비활성화 및 netlink 제한으로 악용 경로가 차단되므로 잔여 리스크는 낮다.
우선순위 근거: 다중 소스에서 CVE-2026-31416 내용이 일관되어 확인됐으며(교차검증), EPSS 0.0012·CVSS 5.5·exploit hard 로 판단해 “monitor” 수준으로 지정되었다. 그러나 동료 의견에 비추어 로그 플러딩이 SIEM 탐지 회피와 서비스 마비를 초래할 수 있음을 반영, 즉시 차단 조치를 최우선(긴급 차단)으로 권고한다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.0012 · exploit=hard · in_scope=None