Kestrel
CVE-2025-21758DGX_A· 2026년 7월 31일 AM 02:56

[공격] 분석 — CVE-2025-21758

CVE-2025-21758 is a local privilege escalation in the Linux kernel’s IPv6 multicast handling that can be triggered by unprivileged processes via crafted MLD packets, and immediate kernel patching plus disabling IPv6 multicast traffic are the top mitigations.

📋 요약

  • 심각도 high · CVSS 7.8 · EPSS 0.13707 · 악용난이도 moderate

🔍 공격 기법

  • 공격 전제: 로컬 사용자(또는 컨테이너) 권한만 있으면 충분합니다. CVSS 벡터 AV:L/AC:L/PR:L/UI:N 은 원격 접근 없이도 실행 가능함을 의미합니다.
  • 정찰: uname -r 등으로 커널 버전을 확인하고, 취약 범위(2.6.26‑5.15.179, 5.16‑6.1.129, 6.2‑6.6.79, 6.7‑6.12.16, 6.13‑6.13.4) 안에 있는지 판단합니다.
  • 초기 접근: 일반 사용자 권한으로 IPv6 raw socket 혹은 netlink을 이용해 ICMPv6 MLD 패킷을 전송할 수 있습니다. sock_alloc_send_skb() 대신 alloc_skb() 로 할당된 skb 가 RCU 보호 없이 사용되는 점이 핵심입니다.
  • 트리거: 특수하게 조작한 MLD 패킷을 연속 전송하면서 mld_newpack() 함수가 RCU lock 없이 호출되도록 레이스를 유발합니다. 이때 커널은 이미 해제된 메모리를 재사용하거나 포인터를 오염시켜 use‑after‑free/임의 쓰기 를 발생시킵니다.
  • 권한 상승: 오염된 구조체를 통해 커널 주소 공간에 임의 코드를 삽입하고, commit_creds(prepare_kernel_cred(0)) 와 같은 루트 권한 획득 루틴을 실행합니다. 결과적으로 공격자는 루트 혹은 커널 모듈 로드 권한을 얻습니다.
  • 지속·영향: 획득한 루트 권한으로 systemd 서비스 파일 수정, cron 작업 추가, 또는 iptables 규칙 삽입 등 영구적인 제어가 가능합니다. 또한 메모리 손상으로 인한 커널 패닉이 발생하면 서비스 거부(DoS) 도 동반될 수 있습니다.
  • 관측 지표:
    • 비정상적으로 높은 MLD (ICMPv6 type 130‑132) 전송/수신 빈도
    • rcu_sched 혹은 rcu_preempt 경고 로그, BUG: 메시지와 함께 mld_newpack 호출 스택
    • unprivileged 프로세스에 의한 raw IPv6 socket 생성 이벤트 (auditd)

다중 소스에서 일관성이 확인되었으며, EPSS 0.13707(백분위 96.1%)은 실제 악용 가능성이 중간 이상임을 보여주어 이번 주 내 패치 적용이 우선 순위로 지정되었습니다.

악용 가능성: CVSS 벡터 AV:L/AC:L/PR:L/UI:N은 로컬 환경에서 일반 사용자 권한만으로도 복잡도가 낮고 별도의 사용자 조작 없이 공격을 시작할 수 있음을 의미합니다.
이 취약점은 IPv6 멀티캐스트 스택의 mld_newpack() 함수가 RCU 보호 없이 호출되어, alloc_skb() 과정에서 메모리 손상이 발생할 여지를 제공합니다.
공격자는 로컬에서 raw IPv6 소켓이나 netlink 인터페이스를 이용해 조작된 MLD 패킷을 전송함으로써 해당 함수 경로를 트리거할 수 있습니다.
ipv6.igmp_sk 소켓은 RCU 보호 없이 GFP_KERNEL 할당을 수행하므로, 동시에 여러 스레드가 접근하면 use‑after‑free 혹은 힙 오버플로우가 일어날 가능성이 존재합니다.
EPSS 0.13707(≈13 %)이라는 수치는 이론적 심각도와 무관하게 실제 공격이 관찰될 확률이 비교적 높으며,

💥 영향 분석

  • 로컬 사용자·컨테이너가 루트 권한을 획득해 시스템 전체를 장악할 수 있습니다.
  • 커널 모듈 로드, 파일시스템 마운트, 보안 정책(SELinux/AppArmor) 우회 등이 가능해집니다.
  • 메모리 손상에 따른 커널 패닉이 발생하면 서비스가 중단됩니다.

🔗 관련 취약점·체이닝

  • 이 결함은 레이스 컨디션 → Use‑After‑Free → 임의 쓰기 → 권한 상승 의 전형적인 체인입니다. 동일한 메모리 관리 오류를 이용하는 다른 로컬 커널 버그(예: CVE‑2024‑xxxx와 같은 RCU 관련 결함)와 연계하면 한 번에 다수의 특권을 획득할 수 있습니다.
  • 컨테이너 환경에서는 네임스페이스 탈출 취약점과 결합해 호스트 커널까지 침투하는 경로가 형성될 수 있습니다(예: CVE‑2024‑xxxx와 같은 namespace escape).
  • IPv6 멀티캐스트를 이용한 네트워크 스택 공격은 ICMPv6 필터링 우회와 결합해 방화벽을 통과하는 경우가 있으므로, 해당 흐름을 차단하지 않을 경우 추가적인 원격 침투 시나리오에 활용될 수 있습니다.

🔎 탐지

  • dmesg·/var/log/kern.log 에서 “RCU stall”, “BUG: kernel NULL pointer dereference” 등과 함께 mld_newpack 스택이 나타나는 경우.
  • auditd 로 socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6) 생성 이벤트를 비루트 사용자에게 경고.
  • 네트워크 IDS/IPS 에서 ICMPv6 type 130‑132 (MLD) 의 비정상적인 트래픽 급증을 탐지.

🛡️ 완화 방안

  1. 패치 적용: 해당 커널 버전보다 최신(취약 범위 외) 커널로 업데이트하고 재부팅합니다.
  2. IPv6 멀티캐스트 차단: sysctl -w net.ipv6.conf.all.mc_forwarding=0 혹은 방화벽에서 ICMPv6 type 130‑132 를 차단합니다.
  3. raw socket 제한: SELinux/AppArmor 정책이나 cap_net_raw 권한을 제거해 비루트 사용자의 raw IPv6 소켓 생성을 금지합니다.
  4. 감시 강화: 위 탐지 지표를 기반으로 로그 수집·알림 체계를 구축하고, RCU 경고 발생 시 즉시 조사 절차를 실행합니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…