[단독공격] 분석 — CVE-2024-36903
CVE-2024-36903 is a local kernel denial‑of‑service flaw exploitable by low‑privilege processes sending crafted IPv6 packets, requiring immediate patching or IPv6 disablement.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.0023 · 악용난이도 hard
🔍 공격 기법
-
트리거 조건
- 로컬에서 실행되는 프로세스가
AF_INET6소켓을 열고, 흐름 정보(flowi6)를 설정하면서FLOWI_FLAG_KNOWN_NH플래그와HDRINCL옵션 사이에 레이스 컨디션을 유발한다. - 커널이
__ip6_make_skb()를 호출할 때 초기화되지 않은 메모리를 읽어 OOB/NULL 포인터 접근으로 커널 패닉을 일으킨다.
- 로컬에서 실행되는 프로세스가
-
공격 단계
- 정찰 –
uname -r등으로 현재 커널 버전 확인. 취약 범위(4.14.313‑4.15, 4.19.281‑4.20, 5.4.241‑5.5, 5.10.178‑5.11, 5.15.107‑5.16, 6.1.24‑6.2, 6.2.11‑6.6.31, 6.7‑6.8.10)와 일치 여부 확인. - 초기 접근 – 로컬 계정(일반 사용자 혹은 컨테이너)으로 실행 권한 확보 (PR:L). 별도 인증 필요 없음(UI:N).
- 실행·권한 획득 – 위 조건을 만족하는 IPv6 패킷 전송 루틴을 구현하고,
setsockopt()로IPV6_HDRINCL플래그를 비활성화한 뒤 동시에 흐름 플래그를 조작해 레이스 발생. - 지속 – 해당 취약점은 커널 패닉을 일으키므로 지속성 자체는 존재하지 않으며, 공격자는 시스템 재부팅 후 동일 절차 반복 가능.
- 영향 – 커널 OOPS/패닉 → 서비스 가용성 전면 차단 (A:H). 메모리 누수·정보 노출은 보고되지 않음(C:N/I:N).
- 정찰 –
-
공격 표면
AF_INET6소켓, raw IPv6 패킷 인터페이스, netlink을 통한 IPv6 라우팅 설정 등 모든 IPv6 전송 경로.- CVSS 벡터(AV:L/AC:L/PR:L/UI:N)와 일치: 로컬, 저복잡도, 낮은 권한, 사용자 개입 없음.
악용 가능성: 이 취약점은 AV:L (로컬)·AC:L (낮은 복잡도)·PR:L (저특권)·UI:N (사용자 개입 없음)이라는 CVSS 벡터가 나타내듯, 공격자는 로컬 시스템에서 일반 사용자 권한만으로 해당 코드를 호출할 수 있습니다. 그러나 실제 악용을 위해서는 커널 내부의 __ip6_make_skb() 함수가 실행되는 시점에 fl6->flowi6_flags 값이 FLOWI_FLAG_KNOWN_NH 플래그를 갖는 상황을 정확히 레이스 조건으로 잡아야 하며, 이는 일반 애플리케이션 수준에서 제어하기 어려운 매우 제한된 실행 흐름입니다. 공격 표면은 IPv6 소켓 API를 통해 패킷을 생성할 때 내부적으로 호출되는 __ip6_make_skb() 와 그 인자로 전달되는 flowi6_flags 파라미터에 국한되므로, 네트워크 스택 외부에서 직접 접근하기는 어렵습니다. EPSS가 0.0023 이라는 낮은 값과 KEV 미등재는 실제 공격이 보고된 사례가 거의 없으며, 레이스 조건을 재현하려면 정밀한 타이밍 조절 및 커널 빌드 환경에 대한 깊은 이해가 필요함을 의미합니다. 따라서 이 취약점은 이론적으로 로컬 저특권 사용자가 이용 가능하지만, 실전에서 성공적인 악용을 위해서는 고도의 탐색·시계 맞춤 기술과 해당 함수 호출 경로를 강제할 수 있는 추가 결함(예: 권한 상승 또는 메모리 손상)과의 체이닝이 전제됩니다. 이런 조건 때문에 등급은 hard 으로 판단되며, 실제 위협도는 매우 낮다고 평가됩니다.
💥 영향 분석
- 성공 시 커널 패닉으로 인한 서비스 중단이 즉각적인 위험이며, 재부팅 전까지 모든 네트워크 서비스가 마비된다.
- 데이터 손실·권한 상승·원격 코드 실행은 보고되지 않았다(C:N/I:N/A:H).
🔗 관련 취약점·체이닝
- 동일 원리의 IPv4 버그(
__ip_make_skb()초기값 접근)와 패치가 선행되어 있음(커밋fc1092f51567). - 추정: 이 결함을 이용해 KASAN/UBSAN 우회 후 커널 메모리 오버플로우 취약점과 연계하면 원격 코드 실행(RCE)으로 확장될 가능성이 있다(구체적인 CVE 번호는 확인되지 않음).
- 일반적 체이닝 패턴: Uninitialized‑value read → Kernel OOPS → Privilege escalation via subsequent memory corruption.
🔎 탐지
- 커널 로그에
uninit-value access혹은BUG: kernel NULL pointer dereference와 같은 OOPS 메시지가 급증. dmesg,/var/log/kern.log,journalctl -k에서 해당 함수명(__ip6_make_skb)이 포함된 스택 트레이스 감지.- 시스템 모니터링 툴(e.g., Falco, Sysdig)에서 IPv6 소켓 생성 후 즉시 커널 패닉 이벤트를 규칙 기반으로 알림.
🛡️ 완화 방안
- 패치 적용 – 배포판 보안 업데이트에 포함된 최신 커널 버전(예: 6.8.11 이상)으로 업그레이드.
- IPv6 비활성화 – IPv6을 사용하지 않는 시스템은
sysctl -w net.ipv6.conf.all.disable_ipv6=1및 해당 서비스 재시작. - 권한 제한 – 컨테이너/샌드박스 환경에서 IPv6 소켓 생성 권한을 AppArmor/SELinux 정책으로 차단.
- 모니터링 강화 – 위 탐지 지표를 SIEM에 연동해 실시간 알림 구축.
※ 이 보고서는 다중 소스 교차검증이 완료된(일관성 확인) 정보와 EPSS 0.0023(실측 악용 예측)·우선순위 “monitor” 결정을 기반으로 작성되었습니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.0023 · exploit=hard · in_scope=None