Kestrel
CVE-2026-64531DGX_2· 2026년 8월 5일 PM 12:43

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

Local privilege escalation in Linux kernel's Open vSwitch via integer truncation of nested nlattrs; prioritize patching and restricting Netlink socket access for users with CAP_NET_ADMIN.

📋 요약

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

🔍 공격 기법

  • 공격 표면 및 트리거: net: openvswitch 커널 모듈의 Netlink 인터페이스가 타겟임. 공격자는 OVS flow actions를 설정할 때 SAMPLE, CLONE, DEC_TTL, CHECK_PKT_LEN 등 중첩 구조(nested container)를 생성하는 builder를 통해 $2^{16}-1$ (U16_MAX) 바이트를 초과하는 거대한 nested attribute를 주입하여 트리거함.
  • 결함 원리 (Integer Truncation): OVS는 flow actions를 nlattrs로 저장하며 길이 필드인 nla_lenu16 타입임. 전체 스트림 크기 제한은 완화되었으나, 중첩 컨테이너의 개별 길이를 검증하는 가드가 제거되어 U16_MAX를 초과하는 데이터 주입 시 상위 비트가 절단(truncate)된 채 저장됨.
  • 공격 체인 및 전제 조건:
    1. 초기 접근 (AV:L/PR:L): 로컬 계정 권한 필요. Netlink 소켓을 통한 OVS 설정 변경 권한이 필수적이며, 컨테이너 환경이라면 CAP_NET_ADMIN 권한이나 특정 네트워크 네임스페이스 접근 권한이 전제됨. (추정: 일부 환경에서는 sysfs/ioctl 경로를 통해 내부 파싱 함수로 진입 가능할 수 있음).
    2. 데이터 주입: oversized nested action을 구성하여 커널에 전송 $\rightarrow$ nla_len이 절단되어 저장됨.
    3. 실행 및 오염: 이후 해당 스트림을 dump 또는 teardown 하는 과정에서, 커널은 절단된(작은) nla_len을 기준으로 데이터를 해석함. 이로 인해 oversized container 내부에 숨겨진 후속 바이트들이 컨테이너 외부의 '독립적인 action'으로 오인되어 실행됨.
    4. 권한 획득: 조작된 독립 액션(특히 CLONE/CT 액션 등)을 통해 커널 메모리 구조체(slab/slub) 레이아웃을 분석, 함수 포인터를 덮어쓰는 등의 방식으로 Root 권한으로 상승함.
  • 관측 지표: Netlink 메시지 내 nla_len과 실제 페이로드 크기의 불일치, OVS 관련 비정상적인 커널 로그 및 Kernel Panic 발생.

악용 가능성: 본 취약점은 Linux Kernel의 Open vSwitch(OVS) 모듈 내 nlattrs 길이 검증 미비로 인해 발생하는 메모리 구조 왜곡 결함입니다. 공격 벡터가 AV:L인 만큼, 공격자는 이미 시스템에 낮은 권한(PR:L)으로 접근하여 커널 인터페이스를 제어할 수 있는 로컬 환경을 전제로 합니다. 공격 표면은 OVS의 flow actions를 생성하고 처리하는 Netlink 프로토콜 엔드포인트이며, 특히 U16_MAX(64KiB)를 초과하는 oversized nested action attribute를 주입하여 nla_len 필드를 truncated(절단)시키는 것이 핵심 트리거입니다. 이렇게 왜곡된 스트림은 이후 dump 또는 teardown 과정에서 검증 단계와 실제 해석 단계의 구조적 불일치를 유발하며, 결과적으로 후속 바이트들이 독립적인 action으로 오인되어 실행되는 로직 에러를 일으킵니다. EPSS 수치가 0.00129로 매우 낮고 KEV에 등재되지 않은 점은 현재 야생에서 자동화된 익스플로잇이 유포되지 않았음을 의미하며, 이는 정교한 커널 메모리 레이아웃 조작 능력이 필요하기 때문입니다. 따라서 이론적 심각도는 높으나 실제 악용을 위해서는 로컬 권한 획득 후 특정 OVS 설정 및 트래픽 제어 권한이 동반되어야 하므로 공격 난이도는 'Hard'로 판단됩니다.

💥 영향 분석

  • 권한 상승 (LPE): 일반 사용자 또는 제한된 권한의 컨테이너 사용자가 커널 링 0(Ring 0) 제어권을 획득하여 호스트 시스템 전체 장악 가능.
  • 가용성 파괴: 메모리 오염으로 인한 Kernel Panic 및 시스템 Crash 유발.

🔗 관련 취약점·체이닝

  • 취약점 유형: Integer Truncation $\rightarrow$ Logic Error $\rightarrow$ Out-of-bounds (OOB) Read/Write (추정).
  • 공격 체이닝 경로:
    1. KASLR 우회 $\rightarrow$ 정밀 타격: 커널 메모리 주소를 알 수 있는 별도의 정보 유출(Information Leak) 취약점과 체이닝하여, 절단된 nla_len으로 인해 발생하는 OOB 접근의 정확도를 높여 페이로드를 특정 함수 포인터에 배치 (추정).
    2. 권한 확보 $\rightarrow$ 커널 진입: Netlink 소켓 접근이 제한된 환경에서는 네임스페이스 탈출이나 CAP_NET_ADMIN 권한 획득 취약점을 먼저 이용해 OVS 설정 권한을 확보한 후 본 결함을 트리거 (추정).
    3. 메모리 레이아웃 조작: Slab/Slub 할당자를 정밀하게 제어하는 Heap Spraying 기법과 체이닝하여, 절단된 속성 이후의 데이터가 유효한 커널 객체로 해석되도록 유도 (추정).

🔎 탐지

  • Netlink 트래픽 감시: nlmsg 내 중첩 attribute 합계가 $64\text{KiB}$에 근접하거나 초과하는 비정상적 패턴 모니터링.
  • 런타임 추적: eBPF를 이용해 openvswitch 모듈 내 nested action close 함수 호출 시 길이 검증 로직의 통과 여부 및 반환 값 실시간 감시.
  • 로그 분석: dmesg에서 OVS 관련 메모리 오염 징후나 비정상적인 action 처리 실패 기록 확인.

🛡️ 완화 방안

  • 근본 해결: Linux Kernel 최신 보안 패치 적용 (nested action close 시 nla_len 초과 컨테이너를 reject 하고 에러를 반환하는 로직).
  • 즉시 조치:
    • OVS 커널 모듈이 불필요한 시스템에서는 해당 모듈 로드 차단.
    • CAP_NET_ADMIN 권한 및 Netlink flow 수정 권한을 최소 권한 원칙에 따라 엄격히 제한.
    • SELinux/AppArmor 정책을 강화하여 OVS 관련 커널 인터페이스 접근 제어.

[파이프라인 근거]

  • 교차검증: 다중 소스 데이터 간 일관성이 확인되어 신뢰도 1.0으로 분석함.
  • EPSS: 실측값 0.00129(백분위 0.02936)로 매우 낮음. 이는 이론적 심각도(CVSS)와 별개로 현재 야생에서 무기화된 사례가 드물고 공격 난이도가 hard임을 의미함.
  • 우선순위: CVSS 7.8의 잠재 위험은 높으나, non-KEV, 낮은 EPSS, 로컬 접근 제약(AV:L)을 고려하여 scheduled(이번 주 내)로 결정됨.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…