[공격] 분석 — CVE-2026-23111
A memory corruption vulnerability in Linux kernel's nf_tables (CVE-2026-23111) allows local privilege escalation via inverted logic in
nft_map_catchall_activate(), requiring the restriction of unprivileged user namespaces.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00344 · 악용난이도 hard
🔍 공격 기법
(1) 트리거 조건: nf_tables에서 DELSET 작업 중 트랜잭션이 실패하여 abort 경로로 진입할 때 발생함. nft_map_catchall_activate() 함수 내의 논리 반전(!nft_set_elem_active)으로 인해, 이미 활성화된 요소는 처리하고 비활성 상태인 요소(복구가 필요한 대상)를 건너뛰어 메모리 상태 불일치를 유발함.
(2) 공격 단계:
- 정찰: 커널 버전 확인 및
nf_tables사용 가능 여부, Unprivileged User Namespace 활성화 여부 확인. - 초기 접근: 로컬 쉘 권한 획득 (AV:L / PR:L).
- 실행·권한 획득: 특정 조건의
nftables규칙 세트를 구성하여DELSET트랜잭션 실패를 유도 $\rightarrow$ 논리 오류로 인한 메모리 오염(Memory Corruption) 트리거 $\rightarrow$ 커널 메모리 내 함수 포인터 또는 데이터 구조 조작 $\rightarrow$ 권한 상승. - 지속 및 영향: Root 권한 획득 후 백도어 설치 또는 시스템 전체 제어.
(3) 공격 표면: Linux Kernel netfilter 서브시스템의 nf_tables 인터페이스. 구체적으로는 Netlink 소켓을 통한 nftables 설정 변경 요청.
(4) CVSS 벡터 연결:
- AV:L (Local): 로컬 접근 필요.
- AC:L (Low): 트리거 조건이 단순 논리 오류임.
- PR:L (Low): 일반 사용자 권한으로 가능 (단, User Namespace 등 특정 환경 전제).
- UI:N (None): 사용자 상호작용 불필요.
악용 가능성: 본 취약점은 AV:L 및 PR:L 조건으로 인해 공격자가 이미 시스템에 로그인하여 낮은 권한의 쉘을 확보한 상태여야 하므로 진입 장벽이 높습니다. 공격 표면은 Linux 커널의 netfilter 서브시스템 내 nf_tables 모듈이며, 구체적으로는 nftables 설정 변경 시 호출되는 nft_map_catchall_activate() 함수의 논리 오류(Inverted check)를 트리거 지점으로 합니다. 비정상적인 트랜잭션 중단 경로를 유도하여 맵 요소의 활성화 상태를 왜곡함으로써 커널 메모리 오염이나 예기치 못한 동작을 유발하는 구조입니다. EPSS 수치가 0.00344로 매우 낮고 KEV에 등재되지 않은 점은, 이 취약점이 단독으로 외부에서 즉시 악용되기보다는 정교한 커널 익스플로잇 체인의 일부로 사용될 가능성이 높음을 시사합니다. 따라서 단순한 Crash 유발을 넘어 권한 상승(LPE)으로 이어지려면 다른 커널 메모리 릭이나 가젯과의 체이닝이 필수적이며, 이 과정에서 AC:L임에도 불구하고 실제 무기화 난이도는 'Hard'로 판단됩니다.
💥 영향 분석
(1) 기술적 위험: Memory Corruption 유형의 취약점으로, 성공 시 커널 모드에서의 임의 코드 실행 또는 권한 상승(LPE)이 가능함. 이는 시스템 전체 제어권 탈취로 이어짐.
(2) 비즈니스 영향: 서버 내 데이터 기밀성 파괴 및 무결성 훼손. 특히 컨테이너 환경에서 호스트 커널로의 탈출(Container Escape) 경로가 될 수 있어 클라우드 인프라 신뢰도에 치명적임.
🔗 관련 취약점·체이닝
- 추정:
Unprivileged User Namespace설정과 체이닝될 가능성이 높음. 일반 사용자가CAP_NET_ADMIN권한을 획득하여nf_tables설정을 조작할 수 있는 환경이 전제되어야 함. - 추정: Memory Corruption 이후 커널 주소 공간 배치 난독화(KASLR)를 우회하기 위해 별도의 정보 유출(Information Leak) 취약점과 체이닝될 가능성이 큼.
- 일반적 패턴: [User Namespace 권한 획득] $\rightarrow$ [nf_tables 논리 오류 트리거] $\rightarrow$ [커널 메모리 오염] $\rightarrow$ [권한 상승].
🔎 탐지
(1) 로그 지표: dmesg 또는 /var/log/syslog에서 netfilter, nf_tables 관련 커널 패닉(Kernel Panic)이나 Segmentation Fault, 혹은 비정상적인 트랜잭션 abort 메시지 확인.
(2) 탐지 규칙 예시:
- 로직 1:
auditd를 이용해 일반 사용자의socket(AF_NETLINK, ...)호출 및nftables관련 시스템 콜 빈도 모니터링. - 로직 2:
Kprobe또는eBPF를 사용하여nft_map_catchall_activate()함수 진입 시 비정상적인 인자 값이나 반복적인 abort 패턴 탐지. - 로직 3: (SIEM)
event.category == "process" && process.name == "nft" && user.privilege != "root"형태의 비정상적 도구 실행 감시.
(3) 오탐 시나리오 및 튜닝: 정상적인 네트워크 관리 스크립트가nft명령어를 빈번하게 호출할 때 발생 가능. 화이트리스트 기반으로 신뢰된 관리자 계정/프로세스 제외 처리 필요.
🛡️ 완화 방안
- 즉시(긴급 차단): Unprivileged User Namespaces 비활성화.
- 방법:
sysctl -w kernel.unprivileged_userns_clone=0(배포판에 따라 상이). - 영향: 일부 컨테이너 런타임 기능 제한 가능 / 난이도: 매우 낮음.
- 방법:
- 단기(완화):
nftables모듈 로드 제한 및 불필요한 네트워크 관리 권한 회수.- 방법:
/etc/modprobe.d/설정을 통해nf_tables모듈 블랙리스트 처리 (서비스 영향 확인 필수). - 영향: 네트워크 필터링 기능 상실 가능 / 난이도: 중간.
- 방법:
- 근본(해결): 수정된 Linux 커널 버전으로 업데이트.
- 대상: Linux 6.4 및 명시된 커밋 범위(
25aa2ad...$\le$ x $<$8c760ba...) 내 버전 패치 적용. - 영향: 시스템 재부팅 필요 / 난이도: 중간 (검증 후 적용).
- 대상: Linux 6.4 및 명시된 커밋 범위(
[파이프라인 근거] 본 분석은 다중 소스에서 일관성이 확인된 데이터를 기반으로 하며, 실측 EPSS 0.00344(백분위 0.265) 및 exploit=hard 등급을 반영하여 우선순위를 'scheduled'로 결정함. 이론적 CVSS(7.8)는 높으나 실제 악용 가능성이 낮게 측정된 실측치를 근거로 대응 순위를 조정함.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00344 · exploit=hard · in_scope=None