[단독공격] 분석 — CVE-2026-64531
A local unprivileged attacker can trigger a kernel memory corruption in Open vSwitch by sending an oversized nested action attribute via netlink, leading to possible privilege escalation; immediate mitigation is to apply the upstream patch that rejects such attributes.
📋 요약
- 심각도 high · CVSS 7.8 · EPSS 0.00129 · 악용난이도 hard
🔍 공격 기법
- 공격 전제: 로컬 시스템에 일반 사용자 권한(L)으로 로그인된 상태이며, 커널에 Open vSwitch 모듈이 로드돼 있어야 함. (AV:L / PR:L)
- 트리거 조건: netlink 소켓(
AF_NETLINK,NETLINK_GENERIC)을 통해 OVS‑Netlink family에 흐름(flow) 추가·수정 요청을 전송하면서,OVS_ACTION_ATTR_*중 하나인 CLONE/CT 등 nested action의nla_len필드를 0xFFFF(=U16_MAX)를 초과하도록 조작한다. 커밋 a1e64addf3ff 이전 버전에서는 전체 액션 스트림 길이는 검증했지만, 내부 컨테이너 길이에 대한 검사만 제거돼 있어 이 조건을 만족하면 커널은 truncated nla_len 로 닫힌 컨테이너를 받아들인다. - 단계별 흐름
- 정찰 –
lsmod | grep openvswitch,/proc/net/openvswitch존재 여부 확인; OVS‑kernel 모듈 버전 탐색(가능하면ovs-vsctl --version). - 초기 접근 – 일반 사용자 권한으로 netlink 소켓을 열고,
NLMSG_TYPE = OVS_FLOW_CMD_NEW(또는OVS_FLOW_CMD_SET) 메시지를 구성. - 실행·권한 획득 – 위에서 언급한 oversized nested action attribute를 포함시켜 커널이 흐름 파싱 시 구조가 달라지게 만든다. 이때 커널은 잘못된 길이 검증을 우회해 메모리 오버플로/오프바이오프셋 를 발생시키고, 공격자는 임의 코드 실행(RCE) 혹은 커널 권한 상승을 시도한다.
- 지속 – 성공적인 RCE 후 root 쉘 획득 → 시스템 서비스에 루트 권한 백도어 설치 등 지속화 가능.
- 정찰 –
- 공격 표면:
- Netlink 엔드포인트:
ovs-netlink(family ID = OVS_GENL_FAMILY) - 파라미터:
actionsattribute 내부의 nested action (CLONE,CT,SAMPLE,DEC_TTL,CHECK_PKT_LEN) 길이 필드(nla_len)
- Netlink 엔드포인트:
- CVSS 벡터와 실제 조건 매핑: AV:L → 로컬 netlink 전송, AC:L → 복잡한 로직 없이 단순 바이트 배열 조작, PR:L → 일반 사용자 권한 충분, UI:N → 사용자 상호작용 불필요.
악용 가능성: 이 취약점은 로컬 환경에서 Open vSwitch (OVS) netlink 인터페이스에 접근할 수 있는 사용자가 ovs‑ofctl·libovs 등을 통해 흐름(flow)을 삽입하면, 의도적으로 과도하게 큰 중첩 액션(nested action) 속성을 포함시킬 수 있다는 전제가 있습니다. CVSS 벡터의 AV:L(Local)과 PR:L(Low‑privilege)는 “루트가 아니더라도 OVS 관리 명령을 실행할 수 있는 계정이면 충분하다”는 현실적인 조건을 반영합니다. AC:L(Low complexity)와 UI:N(No user interaction) 때문에 공격자는 별도의 복잡한 사전 작업 없이 단일 netlink 메시지를 전송하면 되며, 이는 일반적인 서버 관리 스크립트나 자동화 도구에서도 구현이 가능함을 의미합니다. EPSS = 0.00129라는 수치는 현재까지 실제 악용 사례가 극히 드물지만, “가능성은 존재한다”는 점을 정량적으로 보여 주며, KEV에 등재되지 않은 이유는 아직 대규모 공격으로 전환된 적이 없기 때문입니다. 트리거 조건은 oversized nested CLONE/CT action 속성을 포함한 흐름 삽입이며, 해당 속성은 OVS가 내부적으로 nlattr 구조체의 nla_len을 16‑bit로 제한하는 검증 로직이 제거된 뒤에만 발생합니다. 따라서 공격 표면은 OVS netlink 메시지와 그 안의 action length 파라미터이며, 해당 경로가 외부에 노출되지 않은 경우(예: 방화벽으로 차단된 관리 인터페이스) 실제 악용 가능성은 크게 낮아집니다. 이러한 조건을 모두 만족하면, 검증 단계와 해제 단계 사이의 구조적 불일치로 인해 커널이 임의 메모리를 오해석하게 되어 권한 상승이나 서비스 거부와 같은 심각한 영향을 초래할 수 있습니다.
💥 영향 분석
- 성공 시 커널 메모리 손상 → 임의 코드 실행 및 시스템 전체 루트 권한 획득.
- OVS가 관리하는 모든 가상 스위치와 연결된 컨테이너/VM에 대한 네트워크 트래픽 차단·조작 가능.
🔗 관련 취약점·체이닝
- 유형: 메모리 길이 검증 누락으로 인한 Out‑of‑Bounds Write (CWE‑125) 및 Improper Input Validation (CWE‑20).
- 가능 체인 예시:
- 본 취약점으로 커널 권한 상승 →
CAP_NET_ADMIN획득 → 기존 CVE‑2023‑XXXX(네트워크 네임스페이스 탈취)와 연계해 다른 컨테이너의 파일 시스템에 접근. - 권한 상승 후 SELinux/AppArmor 우회 취약점과 결합하면 방어 레이어 전체 무력화 가능. (구체적인 CVE 번호는 확인되지 않음 → 추정:)
- 본 취약점으로 커널 권한 상승 →
🔎 탐지
auditd또는kernel로그에 “OVS: malformed nested action attribute” 혹은nla_len > 65535경고가 기록될 경우.- Netlink 트래픽 모니터링(예:
sysdig -p "%evt.name %proc.name %fd.name")에서 비정상적으로 큰nlattr길이(>0xFFFF)를 가진 OVS flow‑mod 메시지 감지. - LSM(AppArmor/SELinux) 정책 위반 이벤트가 발생하면 해당 UID·PID을 추적.
🛡️ 완화 방안
- 패치 적용 – 커밋 a1e64addf3ff이 포함된 최신 Linux kernel(또는 배포판 업데이트)로 즉시 업그레이드.
- 권한 제한 –
cap_net_admin을 필요로 하는 OVS netlink 인터페이스에 대해sudoers, SELinux/AppArmor 로컬 정책으로 일반 사용자 접근 차단. - 모듈 비활성화 – Open vSwitch가 필요하지 않은 경우
modprobe -r openvswitch로 커널 모듈을 언로드. - 감시 강화 – 위 탐지 지표를 SIEM에 연동해 실시간 알림 설정 및 이상 흐름 발생 시 자동 차단 룰 적용.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=7.8 · non-KEV · EPSS=0.00129 · exploit=hard · in_scope=None