[방어] 분석 — CVE-2024-36927
CVE‑2024‑36927 is a local kernel race condition in __ip_make_skb() triggered by concurrent setsockopt(IP_HDRINCL) and raw_sendmsg calls, potentially causing an uninitialized‑memory access that leads to denial‑of‑service; the highest‑priority mitigation today is to block IP_HDRINCL usage on raw sockets.
📋 요약
- 심각도 medium · CVSS 4.7 · EPSS 0.00166 · 악용난이도 hard
🔍 공격 기법
setsockopt(2) 로 IP_HDRINCL 옵션을 활성화한 뒤, 동일 프로세스 혹은 경쟁 프로세스가 raw_sendmsg() 를 호출하면 __ip_make_skb() 가 HDRINCL 플래그 변화를 감지하지 못하고 icmphdr 에 접근한다. 이 레이스는 커널이 초기화되지 않은 메모리를 읽게 만들어 OOPS 또는 시스템 전체 다운을 유발한다. 공격자는 CAP_NET_RAW 권한만 있으면 로컬에서 손쉽게 재현 가능하다.
악용 가능성: 해당 취약점은 AV:L (로컬 접근)·AC:H (높은 복잡도)·PR:L (낮은 권한)·UI:N (사용자 개입 없음)이라는 CVSS 벡터를 가지고 있어, 공격자가 실제 시스템에 물리적으로 혹은 루트 권한이 없는 로컬 계정으로 접근해야 하며, setsockopt(IP_HDRINCL) 옵션을 조작하면서 정확히 레이스 타임을 맞추는 고난이도 시나리오가 전제됩니다.
EPSS 값 0.00166은 현재까지 실증된 악용 사례가 매우 드물다는 것을 의미하지만, 완전히 무시할 수 없는 위험으로 평가되며, KEV(핵심 취약점) 목록에 등재되지 않은 점은 아직 대규모 공격 캠페인에서 활용되고 있지 않음을 시사합니다.
공격 표면은 Linux 커널 네트워크 스택 내부의 __ip_make_skb() 함수와, 이를 호출하는 IPv4 패킷 전송 경로에 국한됩니다. 특히 IP_HDRINCL 옵션을 설정·해제할 수 있는 setsockopt(2) 시스템 콜이 노출된 프로세스가 존재해야 하며, 해당 프로세스가
💥 영향 분석
- 가용성: 커널 패닉·OOPS 발생 시 해당 노드가 즉시 서비스 중단(DoS)된다.
- 기밀성/무결성: 직접적인 데이터 유출이나 변조는 보고되지 않았다.
🔗 관련 취약점·체이닝
- 동일한 RAW socket 사용과 IP_HDRINCL 옵션을 조합하는 기존 CVE‑2021‑22555 등은 메모리 손상을 이용해 권한 상승을 시도한다.
- 본 취약점은 초기화되지 않은 값 접근에 국한되므로, 다른 커널 메모리 오염(예: CVE‑2017‑16995)과 결합하면 추가적인 로컬 권한 상승 가능성이 있다.
🔎 탐지
-
커널 로그
dmesg·/var/log/kern.log에 “KMSAN: uninit-value in __ip_make_skb” 혹은 “BUG: KMSAN:” 문자열이 나타남.- 필드:
MESSAGE(전체 로그 라인) → 정규식/KMSAN.*__ip_make_skb/.
-
auditd 규칙 (setsockopt IP_HDRINCL 감시)
bash1-a always,exit -F arch=b64 -S setsockopt -F a1=0x0 # SOL_IP2-F a2=3 -k ip_hdrincl_attemptmsgtype=SYSCALL·syscall=setsockopt·a2=3(IP_HDRINCL) 발생 시 이벤트 생성.
-
SIEM 쿼리 예시 (Elastic Kibana)
text1event.category:process AND2event.type:execve AND3process.command_line:*setsockopt*IP_HDRINCL* -
eBPF 탐지 의사코드
kprobe/__ip_make_skb→ 현재 스레드의fl4->flowi4_flags & FLOWI_FLAG_KNOWN_NH검사.- 플래그가 없고
HDRINCL이 변경된 경우trace_printk("Potential __ip_make_skb race", ...).
-
오탐 튜닝
- 정상적인 패킷 캡처 도구(예: tcpdump)도 IP_HDRINCL 옵션을 사용하므로, 프로세스 명(
tcpdump,wireshark)을 화이트리스트에 추가. - 위 규칙에서
uid=0(root)만 허용하도록 필터링하면 관리 작업에 대한 오탐을 크게 감소시킴.
- 정상적인 패킷 캡처 도구(예: tcpdump)도 IP_HDRINCL 옵션을 사용하므로, 프로세스 명(
🛡️ 완화 방안
-
CAP_NET_RAW 제한:
/etc/security/capability.conf혹은 systemd 서비스 파일에CapabilityBoundingSet=~CAP_NET_RAW를 추가해 비특권 사용자에게 RAW socket 생성 권한을 박탈.- 구현 난이도: ★★ (시스템 전역 정책 수정)
- 운영 영향: 네트워크 진단 도구(예: ping –p, traceroute 등) 일부가 제한될 수 있음 → 필요 시 별도 권한 부여 프로파일 생성.
- 검증 방법:
capsh --print로 해당 사용자/서비스의 capabilities 확인.
-
Live‑patch 적용: 배포판에서 제공하는 ksplice/kpatch/livepatch(예: Ubuntu livepatch, RHEL kpatch) 중 커널 버전 4.14.315–6.6.31 에 대한 패치가 존재한다면 즉시 활성화.
- 구현 난이도: ★★ (패키지 설치·활성화)
- 운영 영향: 재부팅 없이 적용 가능, 성능 변화 미미.
- 검증 방법:
uname -r와/proc/livepatch내용 확인.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=4.7 · non-KEV · EPSS=0.00166 · exploit=hard · in_scope=None