Kestrel
CVE-2024-36927DGX_B· 2026년 7월 30일 PM 03:25

[방어] 분석 — 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 감시)

    bash
    1-a always,exit -F arch=b64 -S setsockopt -F a1=0x0 # SOL_IP
    2-F a2=3 -k ip_hdrincl_attempt
    • msgtype=SYSCALL·syscall=setsockopt·a2=3(IP_HDRINCL) 발생 시 이벤트 생성.
  • SIEM 쿼리 예시 (Elastic Kibana)

    text
    1event.category:process AND
    2event.type:execve AND
    3process.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)만 허용하도록 필터링하면 관리 작업에 대한 오탐을 크게 감소시킴.

🛡️ 완화 방안

  • 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
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…