[공격] 분석 — CVE-2026-31496
CVE-2026-31496 is a local kernel flaw in nf_conntrack_expect that can cause host‑wide denial‑of‑service; applying the upstream kernel patch is the highest‑priority remediation.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00123 · 악용난이도 hard
🔍 공격 기법
-
공격 전제
- 로컬 사용자(일반 권한 또는 네임스페이스 제한이 낮은 계정)이며
/proc/net/nf_conntrack_expect파일에 접근 가능해야 함. - 대상 시스템에 여러 네트워크 네임스페이스가 존재하고, 공격자는 자신이 속하지 않은 다른 netns의 conntrack 기대(expectation)를 생성하거나 열람할 수 있는 상황이어야 함(컨테이너 → 호스트, 혹은 다중‑테넌시 환경에서 흔히 발생).
- 로컬 사용자(일반 권한 또는 네임스페이스 제한이 낮은 계정)이며
-
정찰
lsns·ip netns list등으로 현재 호스트에 존재하는 네임스페이스 ID를 수집./proc/<pid>/ns/net심볼릭 링크를 통해 다른 프로세스가 사용 중인 netns 확인 가능.
-
초기 접근
conntrack -E혹은 iptables/raw‑table 규칙을 이용해 공격자가 제어 가능한 네임스페이스에 expectation 객체를 삽입한다(예: 특정 TCP/UDP 흐름에 대한 기대값).
-
트리거·실행
- 동일 프로세스가 아닌 다른 netns에서
cat /proc/net/nf_conntrack_expect등을 수행하여, 커널이 “다른 netns의 expectation을 건너뛰어야 한다”는 로직을 실행하도록 유도. - 현재 구현된 검증 로직이 부족해 null 포인터 역참조 혹은 리스트 무결성 파손이 발생하고, 커널 패닉(OOPS) → 전체 시스템 가용성 상실(Availability = High).
- 동일 프로세스가 아닌 다른 netns에서
-
지속·영향
- 성공 시 시스템 재부팅 없이 커널 패닉으로 서비스 중단; 지속적인 악용을 위해 공격자는 재부팅 후 동일 절차를 반복하거나, 자동화된 스크립트로 주기적 DoS 를 유발 가능.
-
CVSS ↔ 실제 조건 매핑
- AV:L (Local) →
/proc파일 시스템 접근이 핵심 전개 경로. - AC:L (Low) → 별도 권한 상승 없이 일반 사용자도 수행 가능.
- PR:L (Low) → netns 간 권한 차이가 낮아 공격 난이도가 감소.
- UI:N (No Interaction) → 자동화된 스크립트만으로 실행.
- AV:L (Local) →
악용 가능성: 이 취약점은 AV = L(로컬)이며, 공격자는 동일한 네임스페이스에 존재하는 /proc/net/nf_conntrack_expect 파일을 조작해야 합니다. 따라서 물리적·가상 머신 콘솔 접근 또는 로컬 계정 탈취 등 현장 접근이 전제조건이며, 원격에서 직접 노출되는 엔드포인트는 없습니다. 복잡도는 AC = L로 낮지만, 기대값(expectation)을 삽입하거나 삭제하려면 PR = L(낮은 권한) 수준의 CAP_NET_ADMIN 혹은 동일 네임스페이스 내에서 실행되는 프로세스가 필요합니다. UI가 N이므로 사용자의 추가적인 상호작용 없이 스크립트·명령만으로도 수행될 수 있습니다. EPSS = 0.00123이라는 실측값과 KEV 미등재는 현재까지 실제 공격 사례가 거의 없으며, 위험도가 이론적 심각도와 별개로 낮은 이유를 뒷받침합니다. 공격 표면은 /proc 파일시스템을 통해 노출되는 nf_conntrack_expect 엔트리와 그 파라미터(예: 기대 IP/포트, 타임아웃)이며, 네임스페이스 경계 밖으로 기대를 건너뛰는 로직 결함이 핵심 취약점입니다. 따라서 공격자는 먼저 네임스페이스 진입 → proc 파일 접근 → 기대값 조작 순서로 진행해야 하며, 이 모든 단계가 로컬 환경에 제한되므로 실전 난
💥 영향 분석
- 가용성: 커널 패닉·재부팅을 초래해 호스트 전체 서비스 중단.
- 보안 경계: 컨테이너 환경에서 하나의 악성 Pod이 호스트 커널을 다운시켜 다중 테넌시 보장을 무력화할 수 있음.
🔗 관련 취약점·체이닝
- 현재 보고된 동일한 코드 라인에 대한 다른 CVE는 확인되지 않았음(추정: 관련 패치가 여러 버전에서 동시에 적용됨).
- 패턴:
netfilter → conntrack 기대값 처리 → 네임스페이스 경계 검증 오류→ DoS. - 이와 유사한 과거 취약점(e77e6ff502ea)에서는 “다른 netns의 conntrack 엔트리 노출 방지”가 구현되지 않아 정보 누수가 발생했으며, 이번 수정은 기대값(skip) 로직에만 국한되지만 동일 네임스페이스 경계 검증 오류 체인을 형성한다.
🔎 탐지
- 커널 로그:
dmesg·/var/log/kern.log에 “BUG: soft lockup” 혹은 “nf_conntrack_expect: Oops”와 같은 메시지가 기록될 경우. - auditd:
/proc/net/nf_conntrack_expect파일을 읽는open,read시스템 콜이 비특권 UID에서 발생하면 경보 생성. - Syscall 트레이스: eBPF 혹은 Falco 규칙으로
procfs‑nf_conntrack_expect접근 시도 감시(openat→ path=/proc/net/nf_conntrack_expect).
🛡️ 완화 방안
- 패치 적용 – 해당 취약점이 수정된 커널 버전(6.19.12 이상 또는 배포판에서 제공하는 보안 업데이트)으로 즉시 업그레이드.
- 네임스페이스 격리 강화 – 불필요한 사용자 네임스페이스 생성 금지(
sysctl kernel.unprivileged_userns_clone=0). - procfs 접근 제한 – SELinux/AppArmor 프로파일에서
proc/net/nf_conntrack_expect에 대한 읽기 권한을root혹은 신뢰된 서비스만 허용. - 모니터링 – 위 탐지 항목을 SIEM·로그 수집 시스템에 연동하여 OOPS 발생 시 즉시 알림.
위 조치를 통해 현 단계에서 실질적인 DoS 위험을 최소화하고, 장기적으로는 커널 수준의 네임스페이스 경계 검증 로직이 강화된 최신 버전을 유지하는 것이 권장됩니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00123 · exploit=hard · in_scope=None