[단독방어] 분석 — CVE-2026-23458
CVE-2026-23458 is a local use‑after‑free in netfilter’s ctnetlink dump that can be immediately mitigated by unloading the nf_conntrack module and later fixed by applying kernel patches.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00131 · 악용난이도 hard
🔍 공격 기법
netfilter 모듈의 ctnetlink_dump_exp_ct() 가 conntrack 객체에 대한 참조를 유지하지 않은 채 netlink_dump_start() 직후 해제합니다.
dump 작업이 여러 라운드에 걸쳐 진행될 경우 두 번째 recvmsg() 호출 시 이미 해제된 ct->ext 를 역참조해 커널 메모리를 손상시킵니다(Use‑After‑Free).
공격자는 로컬에서 NETLINK_NETFILTER 소켓을 열고 연속적인 dump 요청을 전송함으로써 트리거합니다. 권한 제한이 없으며, 성공 시 커널 코드 실행 → 루트 권한 상승 또는 시스템 전체 DoS가 발생합니다.
악용 가능성: 이 취약점은 AV:L (로컬) → 공격자가 동일 호스트에 접근해야 함을 의미하고, AC:L (낮은 난이도) → 특별한 사전 준비 없이 netlink 메시지만 전송하면 공격이 가능함을 나타냅니다. PR:L (낮은 권한) → 일반 사용자 수준의 프로세스라도 netlink 소켓에 접근할 수 있으면 이용할 수 있으며, UI:N (사용자 상호작용 없음) → 피해자가 별도의 행동을 할 필요가 없습니다. EPSS 값이 0.00131 로 낮지만 0이 아닌 점은 실제 환경에서 일부 공격 시도가 관찰되었음을 의미하고, KEV에 등재되지 않은 것은 아직 대규모 악용 사례가 없다는 뜻입니다. 트리거 조건은 netlink_dump_start() 후 다중 라운드 dump 과정에서 두 번째 recvmsg() 가 호출될 때이며, 이때 해제된 conntrack 객체를 참조하게 됩니다. 공격 표면은 ctnetlink 넷링크 인터페이스와 해당 dump 콜백이 노출되는 커널 내 netlink 소켓(보통 /var/run/netlink)이며, 파라미터는 netlink 메시지 헤더와 dump 옵션뿐입니다. 따라서 로컬에서 netlink dump 요청을 연속으로 수행할 수 있는 권한만 있으면, 메모리 손상을 통해 커널 권한 상승이 이론적으로 실현될 가능성이 존재합니다.
💥 영향 분석
- 저권한 로컬 사용자가 커널 메모리를 조작해 루트 권한 획득 가능
- 커널 Oops/Crash 가 발생하면 서비스 전반이 중단되는 DoS 위험 존재
- 영향을 받는 버전: Linux kernel 3.10‑6.19.x 전체(특히 3.10‑5.15, 5.16‑6.1, 6.2‑6.6, 6.7‑6.12, 6.13‑6.18, 6.19‑6.19.10)
🔗 관련 취약점·체이닝
- 동일 파일 내
ctnetlink_get_conntrack은.start/.done콜백을 사용해 참조를 관리하는데, 이번 결함은 그 로직 부재가 원인입니다. - 과거 netlink 기반 UAF(CVE‑2022‑XXXX 등)와 연계하면, 악성 컨테이너가 호스트 커널로 탈출하는 컨테이너 탈취 체인에 활용될 수 있습니다.
🔎 탐지
- KASAN 오류 로그
- 로그 소스:
kernel혹은syslog - 패턴:
KASAN: slab-use-after-free.*ctnetlink_exp_ct_dump_table - SIEM 쿼리 예시(Kibana Painless):
- 로그 소스:
1source:"/var/log/kern.log" 2and message =~ "KASAN: slab-use-after-free.*ctnetlink_exp_ct_dump_table"- 오탐 가능성: 정상 커널 테스트 중 발생하는 KASAN 로그. →
event.type == "exploit_attempt"필터로 제한.
- 비특권 NETLINK_NETFILTER 소켓 생성
- 로그 소스:
auditd(type=SYSCALL) - 조건:
- 로그 소스:
1syscall = socket 2and a0 = 12 // NETLINK_NETFILTER protocol 3and uid >= 1000 // 비루트 사용자 4and exe != "/usr/sbin/conntrack"- 집계: 5분당 동일 UID·호스트에서 3회 초과 시 알림.
- 오탐 튜닝: 정상 관리 도구(
conntrack) 사용은exe경로를 화이트리스트에 추가.
- 연속적인 netlink dump 요청
- 로그 소스:
auditd(type=NETLINK) 혹은 커널 dmesg에서netlink_dump_start/netlink_dump_done기록 확인. - 패턴 예시 정규식:
- 로그 소스:
1^.*netlink_dump_(start|msg).*ctnetlink_exp_ct.*- 임계값: 1분 내에 동일 프로세스가
dump_start→recvmsg를 두 번 이상 수행하면 경보.
오탐 시나리오와 튜닝
- 개발/테스트 환경에서 대량의 netlink dump를 실행할 경우 위 규칙이 과다 알림을 발생시킬 수 있습니다. 이때는
uid < 500혹은exe가 테스트용 바이너리인 경우를 제외하도록 필터링합니다.
🛡️ 완화 방안
- netlink NETFILTER 소켓 제한
- sysctl 로
kernel.unprivileged_bpf_disabled=1와 함께/etc/sysctl.d/99-netfilter.conf에:
- sysctl 로
1net.netfilter.nf_conntrack_max = 0-
또는 SELinux/AppArmor 프로파일에서
netlink_socket권한을 제한.
난이도: 중간, 운영 영향: 일반 사용자·컨테이너가 conntrack 정보를 조회할 수 없게 됨, 기존 모니터링 도구 사용 제한, 검증:auditctl -l | grep netfilter로 정책 적용 여부 확인. -
KASAN 활성화 (테스트 환경 권장)
text1sysctl -w kernel.kasan.enabled=1난이도: 쉬움, 운영 영향: 약간의 성능 저하, 검증:
dmesg | grep KASAN로 활성화 확인.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00131 · exploit=hard · in_scope=None