Kestrel
CVE-2026-31674DGX_F· 2026년 8월 1일 PM 11:55

[단독방어] 분석 — CVE-2026-31674

The netfilter ip6t_rt vulnerability allows local, low‑privilege users to install malformed IPv6 routing rules that trigger out‑of‑bounds accesses, so the immediate mitigation is to block rt match rule installation with an oversized addrnr.

📋 요약

  • 심각도 high · CVSS 7.1 · EPSS 0.00123 · 악용난이도 hard

🔍 공격 기법

공격자는 iptables 혹은 nftables를 이용해 IPv6 라우트 매치(-m rt) 규칙을 삽입할 때 addrnr 값을 IP6T_RT_HOPS 한계보다 크게 설정한다. rt_mt6() 함수가 이 값을 검증하지 않아 커널 메모리 범위를 벗어난 접근이 발생하고, 로컬 권한 상승으로 이어진다. 악용은 로컬 계정에서 netlink을 통한 규칙 추가 시도만으로 이루어지며, 사용자 인터페이스는 필요 없다.

악용 가능성: 이 취약점은 AV:L / AC:L / PR:L / UI:N 로 평가되어, 공격자는 로컬 시스템에 이미 접근하고 있을 경우(예: 쉘을 얻은 상태) 복잡한 사전 준비 없이 낮은 난이도로 악용할 수 있습니다. 그러나 PR:L 가 의미하듯, 규칙을 삽입하려면 최소한 “netfilter 관리” 권한(보통 root 또는 netadmin 그룹)이 필요하므로, 권한 상승 단계가 선행돼야 합니다. 공격 트리거는 ip6tables·nft 명령 혹은 해당 API를 호출하는 관리 데몬을 통해 rt match 규칙을 추가할 때, addrnr 값을 IP6T_RT_HOPS 를 초과하도록 조작하는 것입니다. 이때 노출되는 공격 표면은 Linux 커널의 netfilter 서브시스템이며, 구체적으로는 /proc/net/ip_tables_names, /proc/net/nf_tables 등 규칙 설치 인터페이스와 rt_mt6_check() 함수가 호출되는 경로입니다. EPSS 값이 0.00123 로 낮지만 0이 아닌 점은 아직 실전에서 광범위하게 활용되지 않았더라도, 공격 코드가 존재하거나 연구 단계에 머물고 있음을 의미합니다. KEV 목록에 등재되지 않은 것은 현재까지 공개된 악용 사례가 없다는 것이며, 이는 이론적 심각도와 실제 위협 사이의 격차를 설명해 줍니다. 따라서 공격 난이도는 “local + low‑privilege” 조건을 만족하면 비교적 낮지만, 권한 확보가 전제되어야 하므로 전체적인 위험 평가는 hard 로 유지됩니다.

💥 영향 분석

성공적인 악용 시 공격자는 커널 수준의 루트 권한을 획득한다. 이를 통해 시스템 전체 파일 접근, 서비스 중단, 임의 코드 실행 등이 가능해진다. 네트워크 스택 자체가 손상되지 않으며, 오직 로컬 권한 상승에 국한된다.

🔗 관련 취약점·체이닝

추정: 동일한 입력 검증 부재를 이용하는 다른 netfilter 매치 모듈(CWE‑20)이나, 커널 메모리 경계 초과(CWE‑119)를 활용한 로컬 권한 상승 공격과 연계될 수 있다.

🔎 탐지

  • 로그 지표

    • dmesg / kernel.log"rt_mt6_check: reject oversized addrnr" 메시지가 기록된다.
    • auditd netlink 이벤트(type=NETFILTER_RULE_ADD)에서 addrnr 필드 값이 정의된 상한(IP6T_RT_HOPS)보다 큰 경우.
  • SIEM 탐지 규칙 예시

    1. Syslog 정규식
text
1source = syslog AND message =~ /rt_mt6_check.*reject oversized addrnr/
text
1 → 해당 메시지가 발생하면 경고 생성.

2. Auditd 쿼리 (ELK)

text
1event.module: "netfilter" AND event.action: "add_rule"
2AND json_extract(event.data, "$.addrnr") > 16 // IP6T_RT_HOPS 추정값
  1. eBPF 기반 실시간 감시 (pseudo‑code)
xss
1if syscall == NETLINK && payload.contains("-m rt") {
2 parse addrnr;
3 if (addrnr > IP6T_RT_HOPS) alert();
4}
  • 오탐 튜닝
    • 정상적인 관리자가 대규모 IPv6 라우트 매치를 적용하는 경우가 드물므로, 해당 호스트와 사용자(CAP_NET_ADMIN 보유자)를 화이트리스트에 추가한다.
    • addrnr 상한값을 실제 커널 헤더에서 확인된 값(예: 16)으로 정확히 설정하면 오탐이 크게 감소한다.

🛡️ 완화 방안

  • 즉시(긴급 차단)
    • ip6t_rt 모듈을 비활성화한다.
text
1echo "install ip6t_rt /bin/true" > /etc/modprobe.d/ip6t_rt.conf
2modprobe -r ip6t_rt # 현재 로드된 경우 즉시 언로드
  • 구현 난이도: 낮음 / 운영 영향: 해당 매치를 사용하는 방화벽 규칙은 동작 중지 / 검증: lsmod | grep ip6t_rt 로 비활성 확인.

  • 단기(완화)

    • CAP_NET_ADMIN 권한을 제한해 일반 사용자가 netfilter 규칙을 추가하지 못하도록 PAM 또는 sudo 정책을 강화한다.
      • 난이도: 중간 / 영향: 관리자 작업 절차 변경 / 검증: 비권한 계정에서 iptables -A 시도시 오류 확인.
    • 커널 감사(Audit) 정책에 위 탐지 규칙을 적용하고, 경보 발생 시 자동으로 해당 netlink 메시지를 차단하도록 auditdausearch 스크립트를 연동한다.
      • 난이도: 중간 / 영향: 로그량 증가 및 약간의 성능 부하 / 검증: 테스트 환경에서 의도된 악성 규칙 삽입 후 차단 확인.
  • 근본(해결)

    • 취약 수정이 포함된 커널 버전으로 업그레이드한다. 현재 영향을 받는 범위는 2.6.12.1–5.10.253, 5.11–5.15.203, 5.16–6.1.168, 6.2–6.6.131, 6.7–6.12.80, 6.13–6.18.21, 6.19–6.19.11 및 이후 버전이다. 최신 LTS 커널(예: 6.8.x 이상)으로 마이그레이션하면 패치가 포함된다.
      • 난이도: 높음 (재부팅 필요, 가능하면 롤링 업데이트 적용) / 영향: 서비스 중단 시간 필요 / 검증: uname -r 확인 후 CVE‑fixed 커밋 존재 여부(git log -p 등) 검사.
  • 잔여 리스크

    • 즉시 차단

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…