[공격] 분석 — CVE-2026-31518
CVE-2026-31518 is a local memory‑leak in the ESP‑over‑TCP path when async crypto is enabled; immediate mitigation is to apply the upstream patch or disable async crypto for ESP, while monitoring skb‑leak indicators.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00129 · 악용난이도 hard
🔍 공격 기법
- 트리거 조건: 로컬 프로세스가 ESP‑over‑TCP (IPsec 터널) 를 사용하면서
async crypto가 활성화된 상태에서 대량의 outbound ESP 패킷을 전송한다. TX 큐가 포화되면esp_output_tail_tcp()가 오류를 반환하지만, 비동기 crypto 경로(esp_output_done)에서는 skb 가 해제되지 않는다 → 커널 힙에 누적되는 SKB 메모리. - 공격 단계
- 정찰/초기 접근 – 로컬 시스템에서 IPsec(ESP‑over‑TCP) 구성 확인 (
ip xfrm state show,sysctl net.ipv4.conf.*). - 실행·권한 획득 – 비특권 사용자라도
CAP_NET_RAW혹은 일반 소켓 권한으로 ESP 패킷을 생성할 수 있음(프리빌리지 요구 낮음, CVSS PR:L). - 지속 – 지속적인 고속 전송 루프(예:
while true; sendmsg(...); done) 로 TX 큐를 인위적으로 가득 채운다. - 영향 – 누적된 SKB 메모리가 커널 힙을 고갈, 결국 OOM·커널 패닉(DOS) 혹은 힙 레이아웃 정보 유출(메모리 할당/해제 패턴 관찰).
- 정찰/초기 접근 – 로컬 시스템에서 IPsec(ESP‑over‑TCP) 구성 확인 (
- 공격 표면:
- 엔드포인트: 로컬 네트워크 스택, ESP‑over‑TCP 인터페이스 (
xfrm_userAPI 또는ip xfrm). - 파라미터: 암호화 알고리즘 선택 시 async crypto 플래그, 패킷 크기·전송 속도.
- 엔드포인트: 로컬 네트워크 스택, ESP‑over‑TCP 인터페이스 (
- CVSS 벡터 ↔ 실제 조건: AV:L(로컬), AC:L(복잡도 낮음 – 단순 루프), PR:L(낮은 권한), UI:N(사용자 상호작용 없음) → 공격이 로컬에서 거의 제한 없이 실행 가능함을 의미.
악용 가능성: AV:L/AC:L/PR:L/UI:N 벡터는 공격자가 로컬 환경에 직접 접근할 수 있어야 하고, 복잡한 사전 작업 없이도 낮은 권한(예: 일반 사용자)으로 실행이 가능하다는 전제를 의미합니다. EPSS = 0.00129이라는 실측값과 KEV 미등재는 현재까지 이 취약점이 실제 공격에 활용된 사례가 거의 없으며, 위협 인식 수준도 낮은 편임을 보여줍니다. 그러나 트리거 조건 자체는 espintcp 전송 큐가 포화 상태에서 비동기 암호화 모드(esp_output_done)를 사용하고, esp_output_tail_tcp 함수가 오류를 반환할 때 skb 를 해제하지 못하는 상황으로, 로컬에서 대량의 ESP‑over‑TCP 패킷을 의도적으로 전송함으로써 발생시킬 수 있습니다. 노출되는 공격 표면은 Linux 커널 네트워크 스택의 xfrm/esp 경로이며, 특히 esp_output_tail_tcp, esp_output_done 함수와 skb 구조체가 직접 조작되는 부분이 대상이 됩니다. 이를 악용하려면 로컬에서 raw socket 혹은 특권 없는 사용자 권한으로 IPsec ESP 패킷을 생성·전송할 수 있는 능력이 필요하고, 동시에 커널의 TX 큐 상태를 인
💥 영향 분석
- DoS: 커널 메모리 고갈로 인한 시스템 불안정·패닉, 서비스 중단.
- 정보 누수 (추정): 반복적인 SKB 할당/해제로 힙 레이아웃 변화를 관찰할 수 있어, 이후의 힙 기반 취약점 활용 시 정보 수집에 이용될 가능성 존재.
🔗 관련 취약점·체이닝
- 동일 계열 메모리 누수: 과거
esp: skb leak유형(CVE‑2021‑xxxx 등)과 유사하게, 메모리 고갈을 DoS 혹은 힙 레이아웃 정보를 수집하는 전초 단계로 활용될 수 있음. - 가능한 체인 패턴:
1️⃣ SKB 누수 → 커널 힙 파편화/고갈 → 기존 힙 오버플로우·UAF 취약점(CWE‑416)과 결합 시 권한 상승 또는 원격 코드 실행 가능.
2️⃣ DoS 후 재부팅 과정에서 초기화되지 않은 구조체를 이용하는 부트 단계 공격과 연계될 수 있음(추정).
🔎 탐지
- 커널 로그에
esp_output_tail_tcp: error와 함께 “skb not freed” 메시지가 반복적으로 나타남. /proc/net/dev혹은ethtool -S <iface>의 TX‑queue‑full 카운터 급증.- 메모리 모니터링(
slabtop,cat /proc/meminfo) 에서kmalloc-*(특히skb_*) 사용량 비정상적 상승.
🛡️ 완화 방안
- 패치 적용 – upstream 커밋 “esp: fix skb leak with espintcp and async crypto” 를 포함한 최신 커널 버전으로 업데이트.
- 임시 우회 –
async crypto비활성화(예:/sys/module/esp/parameters/async=0혹은 IPsec 설정에서crypto_mode = sync로 강제). - 리소스 제한 – ESP‑over‑TCP 인터페이스에 TX 큐 크기(
tx_queue_len) 및 전송 속도(rate limit) 적용, 시스템d 서비스 혹은 cgroup을 이용해 메모리 사용량 상한 설정. - 감시 체계 구축 – 위 탐지 지표를 SIEM/ELK 등에 연동하여 이상 징후 발생 시 알림.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00129 · exploit=hard · in_scope=None