[공격] 분석 — CVE-2026-43011
A critical double-free vulnerability in the Linux kernel's X.25 driver allows remote attackers to potentially achieve kernel-level execution by manipulating memory layouts, necessitating immediate module disabling or patching.
📋 요약
- 심각도 critical · CVSS 9.8 · EPSS 0.00591 · 악용난이도 moderate
🔍 공격 기법
본 취약점은 net/x25 드라이버의 메모리 해제 로직 결함으로, 특정 조건에서 동일한 skb(socket buffer) 객체가 두 번 해제되는 Double Free 현상을 유발한다.
-
공격 표면 (Attack Surface):
- 프로토콜: X.25 (ITU-T 표준 네트워크 프로토콜).
- 노출 지점:
x25커널 모듈이 로드되어 있고, 외부에서 X.25 패킷을 수신할 수 있는 인터페이스가 활성화된 상태. - 트리거 경로:
x25_backlog_rcv()$\rightarrow$x25_process_rx_frame()$\rightarrow$x25_state3_machine()$\rightarrow$x25_queue_rx_frame().
-
취약점 트리거 원리:
x25_queue_rx_frame함수 내에서alloc_skb가 실패할 경우, 이미 할당된skb를kfree_skb(skb)로 해제하고 에러 값(1)을 반환한다.- 이 반환값이 호출 체인을 타고
x25_backlog_rcv까지 전달된다. x25_backlog_rcv는queued=0(에러 상황)임을 확인하고, 동일한skb에 대해 다시 한번kfree_skb(skb)를 호출한다.
-
공격 체인 및 전제 조건:
- 정찰: 대상 시스템의 커널 버전 확인 및 X.25 모듈 로드 여부 스캔. (전제:
x25모듈 활성화) - 초기 접근: 네트워크를 통해 특수하게 조작된 X.25 패킷 주입. (AV:N, AC:L, PR:N, UI:N 반영)
- 실행 및 권한 획득:
alloc_skb실패를 유도하기 위해 커널 메모리 압박(Memory Pressure)을 가하거나 Heap Spraying을 통해 슬랩 할당자(Slab Allocator)의 상태를 조작한다. Double Free 발생 직후, 해제된 슬롯에 공격자가 제어하는 데이터(함수 포인터 등)를 덮어써 커널 실행 흐름을 탈취한다. - 영향: 커널 권한으로 임의 코드 실행 또는 시스템 패닉(DoS).
- 정찰: 대상 시스템의 커널 버전 확인 및 X.25 모듈 로드 여부 스캔. (전제:
악용 가능성: 본 취약점은 네트워크 스택의 x25 프로토콜 처리 과정에서 발생하는 Double Free 결함으로, 공격 난이도는 Moderate 수준입니다. CVSS 벡터(AV:N/AC:L/PR:N/UI:N)가 보여주듯 인증 없이 네트워크를 통해 원격으로 트리거 가능하며, 특히 alloc_skb 실패라는 메모리 압박 상태(Memory Pressure)를 유도하여 x25_queue_rx_frame과 x25_backlog_rcv에서 동일한 skb 객체를 두 번 해제하게 만드는 것이 핵심입니다. 공격 표면은 X.25 프로토콜이 활성화된 리눅스 커널의 네트워크 인터페이스 및 관련 수신 엔드포인트에 매핑됩니다. EPSS 값(0.00591)과 KEV 미등재 사실은 현재 실제 야생(In-the-wild)에서 대규모로 악용되는 사례는 적음을 의미하지만, 이론적 심각도와 별개로 커널 메모리 오염을 통해 원격 코드 실행(RCE)이나 시스템 크래시(DoS)로 이어질 수 있는 치명적인 경로를 제공합니다. 결과적으로 공격자는 특수하게 조작된 X.25 프레임을 전송하여 커널 힙(Heap) 구조를 파괴하고, 이를 다른 커널 취약점과 체이닝하여 권한 상승을 시도할 가능성이 존재합니다.
💥 영향 분석
- 커널 권한 탈취: Double Free를 이용한 Use-After-Free(UAF) 상태를 유도하여 커널 메모리 내 함수 포인터를 변조, 원격 코드 실행(RCE)이 가능하다.
- 가용성 파괴: 메모리 오염으로 인한 Kernel Panic 및 시스템 즉시 중단.
🔗 관련 취약점·체이닝
본 결함은 단독으로 Crash를 일으키기 쉬우나, 실전에서는 다음과 같은 체이닝을 통해 무기화될 가능성이 높다.
- 메모리 레이아웃 조작 $\rightarrow$ 권한 상승:
kmalloc슬롯의 재사용 특성을 이용해, 해제된skb영역에 다른 커널 객체를 배치하는 Heap Grooming 기법과 체이닝된다. - 정보 유출(Information Leak) $\rightarrow$ RCE: 추정: KASLR(Kernel Address Space Layout Randomization)을 우회하기 위해, 먼저 커널 주소를 누출시키는 별도의 취약점(예: Out-of-bounds Read)과 체이닝하여 정확한 페이로드 주소를 계산해야 한다.
- 메모리 압박 $\rightarrow$ 트리거 가속:
alloc_skb실패를 강제하기 위해 시스템 자원을 고갈시키는 DoS성 공격과 병행될 수 있다.
🔎 탐지
- 커널 로그 감시:
kfree_skb중복 호출로 인한Kernel Panic또는Slab corruption관련 로그(예:slab-out-of-bounds,double free) 모니터링. - 네트워크 트래픽: 비정상적으로 많은 X.25 패킷 유입 및 프로토콜 규격에 맞지 않는 조작된 프레임 탐지.
- 모듈 상태 확인:
lsmod | grep x25를 통해 불필요하게 로드된 X.25 모듈 식별.
🛡️ 완화 방안
- 즉시 조치: 사용하지 않는 경우
x25커널 모듈을 언로드(rmmod x25)하거나 블랙리스트에 추가하여 공격 표면을 완전히 제거한다. (단, 실제 서비스 중인 경우 가용성 영향 확인 필수) - 근본 해결: Linux 커널 최신 패치 버전으로 업데이트하여
x25_backlog_rcv및 관련 함수들의 에러 핸들링 로직을 수정한다.
분석 근거: 본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, 실측 EPSS(0.00591) 수치를 기반으로 이론적 심각도(CVSS 9.8) 대비 실제 악용 가능성은 Moderate 수준으로 판단하였다. 이에 따라 즉시 대응보다는 이번 주 내 처리를 목표로 하는 scheduled 우선순위가 결정되었다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=9.8 · non-KEV · EPSS=0.00591 · exploit=moderate · in_scope=None