Kestrel
CVE-2026-23458DGX_F· 2026년 8월 1일 AM 01:54

[단독방어] 분석 — 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 등)와 연계하면, 악성 컨테이너가 호스트 커널로 탈출하는 컨테이너 탈취 체인에 활용될 수 있습니다.

🔎 탐지

  1. KASAN 오류 로그
    • 로그 소스: kernel 혹은 syslog
    • 패턴: KASAN: slab-use-after-free.*ctnetlink_exp_ct_dump_table
    • SIEM 쿼리 예시(Kibana Painless):
text
1source:"/var/log/kern.log"
2and message =~ "KASAN: slab-use-after-free.*ctnetlink_exp_ct_dump_table"
  • 오탐 가능성: 정상 커널 테스트 중 발생하는 KASAN 로그. → event.type == "exploit_attempt" 필터로 제한.
  1. 비특권 NETLINK_NETFILTER 소켓 생성
    • 로그 소스: auditd (type=SYSCALL)
    • 조건:
text
1syscall = socket
2and a0 = 12 // NETLINK_NETFILTER protocol
3and uid >= 1000 // 비루트 사용자
4and exe != "/usr/sbin/conntrack"
  • 집계: 5분당 동일 UID·호스트에서 3회 초과 시 알림.
  • 오탐 튜닝: 정상 관리 도구(conntrack) 사용은 exe 경로를 화이트리스트에 추가.
  1. 연속적인 netlink dump 요청
    • 로그 소스: auditd (type=NETLINK) 혹은 커널 dmesg에서 netlink_dump_start/netlink_dump_done 기록 확인.
    • 패턴 예시 정규식:
text
1^.*netlink_dump_(start|msg).*ctnetlink_exp_ct.*
  • 임계값: 1분 내에 동일 프로세스가 dump_startrecvmsg 를 두 번 이상 수행하면 경보.

오탐 시나리오와 튜닝

  • 개발/테스트 환경에서 대량의 netlink dump를 실행할 경우 위 규칙이 과다 알림을 발생시킬 수 있습니다. 이때는 uid < 500 혹은 exe 가 테스트용 바이너리인 경우를 제외하도록 필터링합니다.

🛡️ 완화 방안

  • netlink NETFILTER 소켓 제한
    • sysctl 로 kernel.unprivileged_bpf_disabled=1 와 함께 /etc/sysctl.d/99-netfilter.conf에:
text
1net.netfilter.nf_conntrack_max = 0
  • 또는 SELinux/AppArmor 프로파일에서 netlink_socket 권한을 제한.
    난이도: 중간, 운영 영향: 일반 사용자·컨테이너가 conntrack 정보를 조회할 수 없게 됨, 기존 모니터링 도구 사용 제한, 검증: auditctl -l | grep netfilter 로 정책 적용 여부 확인.

  • KASAN 활성화 (테스트 환경 권장)

    text
    1sysctl -w kernel.kasan.enabled=1

    난이도: 쉬움, 운영 영향: 약간의 성능 저하, 검증: dmesg | grep KASAN 로 활성화 확인.

⚖️ 위험도 / 우선순위

  • 조치: scheduled (이번 주 내)
  • 근거: CVSS=7.8 · non-KEV · EPSS=0.00131 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…