[방어] 분석 — CVE-2026-23086
A resource exhaustion vulnerability in Linux kernel vsock/virtio allows a malicious peer to trigger Host DoS via memory depletion, requiring immediate restriction of vsock buffer sizes or kernel patching.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00142 · 악용난이도 hard
🔍 공격 기법
- 경로:
vsock/virtio전송 계층에서 발생하며, 통신 상대방(Peer)이 설정한SO_VM_SOCKETS_BUFFER_SIZE값을 기반으로 TX Credit을 결정하는 로직의 결함을 이용합니다. - 원리: 악의적인 Guest가 매우 큰 버퍼 사이즈를 광고(Advertise)하고 데이터를 천천히 읽어 들임으로써, Host 측이 해당 요청에 맞춰 과도한 양의
sk_buff메모리를 할당하게 유도합니다. - 단계: [Guest: 대용량 버퍼 설정] $\rightarrow$ [Host: Peer의 설정을 신뢰하여 TX Credit 상향] $\rightarrow$ [Host: 데이터 큐잉 및 메모리 할당 증가] $\rightarrow$ [Host: Memory Exhaustion].
악용 가능성: 본 취약점의 공격 난이도는 Hard로 판정됩니다. CVSS 벡터상 AV:L 및 PR:L 조건에 따라, 공격자는 이미 대상 시스템(Host 또는 Guest)에 접근 권한을 가진 상태에서 로컬 인터페이스를 통해 공격을 수행해야 하는 제약이 있습니다. 공격 표면은 VM 간 통신 프로토콜인 vsock/virtio 엔드포인트이며, 구체적으로는 원격 엔드포인트의 SO_VM_SOCKETS_BUFFER_SIZE 파라미터 값을 조작하여 트리거됩니다. 악성 Guest가 비정상적으로 큰 버퍼 크기를 광고(Advertise)하고 데이터를 느리게 읽음으로써 Host의 sk_buff 메모리를 과다 할당하게 만드는 리소스 고갈 공격 방식입니다. EPSS 수치가 0.00142로 매우 낮고 KEV에 등재되지 않은 점은 현재 야생(In-the-wild)에서 활발히 악용되는 사례가 드물며, 이론적 심각도 대비 실제 공격 성공률이 낮음을 시사합니다. 결과적으로 로컬 권한 획득과 특정 가상화 환경이라는 전제 조건이 필요하므로 즉각적인 대규모 확산 가능성은 낮으나, 내부 침투 후 권한 상승이나 서비스 거부(DoS)를 노리는 타겟 공격의 수단이 될 수 있습니다.
💥 영향 분석
- 가용성 침해 (DoS): Host 시스템의 커널 메모리가 고갈되어 시스템 전체가 응답 불능 상태에 빠지거나, OOM(Out Of Memory) Killer에 의해 필수 프로세스가 종료될 수 있습니다.
- 범위: 가상화 환경에서 Guest $\rightarrow$ Host 방향 또는 반대 방향 모두 가능합니다.
🔗 관련 취약점·체이닝
- 유형: Resource Exhaustion (CWE 미분류이나 성격상 메모리 고갈 유형).
- 체이닝: 단독으로 시스템 가용성을 파괴할 수 있으나, 추정: 다른 커널 권한 상승(LPE) 취약점과 결합하여 시스템 불안정 상태를 유도하는 전단계로 활용될 가능성이 있습니다.
🔎 탐지
본 취약점은 네트워크 패킷 수준보다 커널 메모리 사용량과 vsock 소켓 상태 지표로 탐지해야 합니다.
-
로그 및 지표:
/proc/net/vsock및slabtop을 통한skbuff_head_cache또는 관련 slab 메모리 급증 확인.- 커널 로그(
dmesg) 내Out of memory: Kill process메시지 및 vsock 관련 에러 확인.
-
탐지 규칙 예시:
- SIEM/모니터링 쿼리 (의사코드):
SELECT host, mem_usage FROM kernel_metrics WHERE slab_object == 'skbuff' AND usage_rate > threshold_high AND process_context == 'vsock' - 메모리 임계값 기반 탐지:
- 조건: 특정 Guest vCPU/Memory 할당량 대비 Host의
sk_buff할당량이 비정상적으로 증가하는 패턴 (예: 1분 내 500% 이상 급증).
- 조건: 특정 Guest vCPU/Memory 할당량 대비 Host의
- 시스템 로그 정규식:
(?i)(out of memory|oom-killer).*vsock
- SIEM/모니터링 쿼리 (의사코드):
-
오탐 튜닝:
- 대용량 데이터 전송이 빈번한 정상적인 가상 머신 워크로드를 프로파일링하여 Baseline을 설정해야 합니다. 단순히 메모리 사용량이 높은 것이 아니라, Peer의 응답 속도는 느린데 Host의 할당량만 증가하는 비대칭성을 확인하는 것이 핵심입니다.
🛡️ 완화 방안
이 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, 실측 EPSS 0.00142(백분위 0.03977) 및 CVSS 5.5를 근거로 우선순위를 monitor로 결정하였습니다. 이는 실제 악용 가능성은 낮으나 영향 범위가 광범위하므로 전략적 대응이 필요함을 뜻합니다.
-
즉시 (긴급 차단):
- 조치: Host 및 Guest의 vsock 버퍼 최대 크기를 제한하는 설정 적용 (
SO_VM_SOCKETS_BUFFER_MAX_SIZE확인 및 하향 조정). - 난이도/영향: 낮음 / 일부 고속 통신 성능 저하 가능성.
- 검증:
sysctl또는 관련 커널 파라미터 적용 값 확인.
- 조치: Host 및 Guest의 vsock 버퍼 최대 크기를 제한하는 설정 적용 (
-
단기 (완화):
- 조치: 비정상적으로 많은 메모리를 점유하는 Guest VM의 리소스 쿼타(Quota)를 엄격히 제한하거나, 불필요한 vsock 통신을 차단하는 방화벽 정책 적용.
- 난이도/영향: 중간 / 가상 머신 간 통신 단절 위험.
- 검증:
top또는virt-top을 통한 Guest별 메모리 점유율 모니터링.
-
근본 (해결):
- 조치: 영향받는 커널 버전(4.8 ~ 6.18.8 등)에서
virtio_transport_tx_buf_size()헬퍼 함수가 도입된 최신 패치 버전으로 업데이트. - 난이도/영향: 높음 / 커널 업데이트 후 시스템 재부팅 필요(서비스 다운타임 발생).
- 검증:
uname -r을 통해 패치된 커널 버전 적용 여부 확인.
- 조치: 영향받는 커널 버전(4.8 ~ 6.18.8 등)에서
잔여 리스크: 패치 이후에도 min(peer_buf_alloc, buf_alloc) 로직에 의해 제한되지만, 설정된 buf_alloc 값 자체가 매우 클 경우 여전히 상당한 메모리를 사용할 수 있으므로 적절한 버퍼 사이즈 설정 관리가 병행되어야 합니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00142 · exploit=hard · in_scope=None