Kestrel
CVE-2026-31508DGX_A· 2026년 8월 2일 AM 03:58

[공격] 분석 — CVE-2026-31508

CVE-2026-31508 is a local use‑after‑free in Open vSwitch port teardown that can cause kernel panic or privilege escalation; immediate mitigation is to upgrade to patched kernels or unload the openvswitch module.

📋 요약

  • 심각도 high · CVSS 7.8 · EPSS 0.00135 · 악용난이도 hard

🔍 공격 기법

  • 트리거 조건

    • 로컬 사용자(또는 컨테이너)에게 CAP_NET_ADMIN 권한이 있어야 함 (PR:L).
    • OVS 포트를 삭제하는 netlink(RTM_DELPAD 등) 메시지를 전송할 수 있는 /dev/netlink 접근이 필요함.
    • PREEMPT_RT 커널(예: 6.12‑rt, 5.10‑rt)에서는 스케줄러가 ovs_netdev_detach_dev() 실행 중에 선점될 가능성이 높아 레이스 조건을 만들 수 있음 (AV:L, AC:L).
  • 공격 흐름

    1. 정찰ip link show 또는 netlink dump 로 OVS 가상 인터페이스와 IFF_OVS_DATAPATH 플래그가 설정된 장치를 식별.
    2. 초기 접근 – 일반 사용자 계정으로 로그인(또는 컨테이너 내부) 후 socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE) 생성.
    3. 실행·권한 획득 – 고부하/CPU 바인딩 스레드로 커널 스케줄러를 압박하면서 OVS 포트 삭제 netlink 메시지를 전송. 플래그가 먼저 클리어된 뒤 netdev_destroy() 가 호출되어 메모리가 해제되고, 아직 진행 중인 unregister 가 남아 있어 UAF 발생.
    4. 지속 – 성공 시 커널 패닉을 이용해 시스템 재부팅 후 부트 파라미터에 악성 모듈을 삽입하거나, 메모리 재사용(Heap Spray)으로 제어 흐름을 가로채면 루트 권한 획득 후 지속화 가능.
    5. 영향Oops: general protection fault 로그와 함께 커널 패닉 → 서비스 중단 또는 권한 상승.
  • 공격 표면

    • Netlink 소켓 (AF_NETLINK) → OVS 포트 관리 메시지 (RTM_DELPAD, RTM_NEWLINK 등).
    • ovs_netdev_detach_dev() 내부 플래그 클리어 시점과 netdev_destroy() 의 RCU 호출 사이의 레이스.
  • CVSS ↔ 실제 조건 매핑

    • AV:L → 로컬 접근만 필요.
    • AC:L → 복잡도 낮음, 단순 netlink 메시지 전송으로 충분.
    • PR:L → CAP_NET_ADMIN 정도 권한이면 가능.
    • UI:N → 사용자 상호작용 없이 자동화 가능.

악용 가능성: 이 취약은 AV:L(로컬)이며, 공격자는 해당 호스트에 직접 접근할 수 있는 상황이어야 합니다. 하지만 AC:L, PR:L, UI:N 로 평가된 바와 같이, 일반 사용자 권한만으로도 복잡한 사전 준비 없이 바로 실행 가능한 낮은 난이도의 레이스 조건입니다. 공격자는 OVS 포트 해제 과정에서 ovs_netdev_detach_dev() 가 플래그를 클리어한 뒤 선점당할 수 있는 시점을 목표로, netdev_destroy() 콜을 유발해 커널 메모리를 조기에 해제하도록 만들면 됩니다. 이때 노출되는 공격 표면은 Netlink(OVS‑port delete) 혹은 ioctl/sysfs 인터페이스를 통해 호출 가능한 ovs_netdev_detach_dev·netdev_destroy 함수와, 플래그(IFF_OVS_DATAPATH)가 조작될 수 있는 파라미터입니다. EPSS = 0.00135 로 측정된 실제 활용 사례는 극히 드물지만 완전히 존재하지 않지는 않으며, KEV에 등재되지 않은 점은 아직 대규모 악용이 보고되지 않았음을 의미합니다. 따라서 공격 성공 여부는 타이밍(프리엠션) 확보와 로컬 접근 권한 보유 여부에 크게 좌우됩니다.

💥 영향 분석

  • 커널 패닉에 의해 서비스 가용성이 즉시 중단됨(DoS).
  • UAF를 이용해 메모리를 재사용하면 루트 권한 획득 및 시스템 전체 제어가 가능함.
  • 영향을 받는 커널 버전이 5.10, 5.15, 6.1, 6.6, 6.12, 6.18, 6.19 등 광범위하므로 다수 배포판·클라우드 이미지에 동일 위험 존재.

🔗 관련 취약점·체이닝

  • 유형: Use‑After‑Free (CWE‑416) → 권한 상승 → 커널 코드 실행.
  • 가능한 체인
    • CAP_NET_ADMIN 획득을 위한 다른 로컬 권한 상승 취약점(예: CVE‑2022‑XXXX) → OVS 레이스 조건 트리거.
    • 커널 메모리 재사용을 위한 Heap Spray 기법(예: /proc/sys/vm/mmap_min_addr 조정, kmalloc‑slab 오버플로우)과 결합하면 임의 코드 실행 가능.
    • 컨테이너 환경에서는 privileged 컨테이너 또는 잘못된 CNI 플러그인 설정을 통해 직접 netlink 접근 권한을 얻어 원격 트리거가 현실화될 수 있음(추정).

🔎 탐지

  • 커널 로그: Oops: 로 시작하는 일반 보호 오류와 dev_set_promiscuity+0x 주소가 포함된 스택 트레이스.
  • auditd / syslog: netlink 소켓을 통한 OVS 포트 삭제(RTM_DELPAD) 이벤트 빈도 급증.
  • 시스템 메트릭: 짧은 시간 내에 RCU 콜백(call_rcu()) 실행이 비정상적으로 많이 발생하는 경우.
  • 예시 시그니처 (ELK/Kibana)
    text
    1message:"Oops: general protection fault" AND
    2message:"dev_set_promiscuity+0x"

🛡️ 완화 방안

  • 즉시 조치

    • 해당 커널 버전이 사용 중이면 yum update/apt upgrade 로 최신 패치를 적용하거나, modprobe -r openvswitch 로 OVS 모듈을 언로드(서비스 영향 사전 검토).
    • CAP_NET_ADMIN 권한을 최소화하고, SELinux/AppArmor 정책으로 netlink(O VS) 메시지 전송을 신뢰된 프로세스에만 허용.
  • 근본 해결

    • 패치가 포함된 커널(5.10.254+, 5.15.204+, 6.1.169+, 6.6.132+, 6.12.81+, 6.18.22+, 6.19.12+)으로 업그레이드.
    • PREEMPT_RT 사용 시 레이스 조건을 방지하는 백포트 패치를 적용하거나, 실시간 커널 사용을 일시 중단.
  • 운영 차원

    • OVS가 불필요한 시스템에서는 컴파일 옵션 CONFIG_OPENVSWITCH=n 로 빌드하거나, 컨테이너 런타임에서 --cap-drop=NET_ADMIN 으로 권한을 제한.

교차검증: 다중 소스에서 일관성이 확인됐으며, EPSS 0.00135(실측)와 CVSS 7.8·non‑KEV·hard exploit 등급으로 이번 주 내 대응(scheduled) 우선순위가 부여되었습니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…