Kestrel
CVE-2024-36903DGX_A· 2026년 7월 30일 PM 01:31

[공격] 분석 — CVE-2024-36903

CVE‑2024‑36903 is a local kernel race condition in __ip6_make_skb() that can be triggered via crafted IPv6 packets, leading to an uninitialized‑value access and potential denial‑of‑service; immediate mitigation is to apply the upstream patch or upgrade to a non‑vulnerable kernel.

📋 요약

  • 심각도 medium · CVSS 5.5 · EPSS 0.0023 · 악용난이도 hard

🔍 공격 기법

  • 트리거 조건
    • 로컬 프로세스가 AF_INET6 RAW 소켓을 열고 IPV6_HDRINCL(또는 동일한 플래그) 옵션을 설정한 뒤, 특수히 조작된 IPv6 헤더를 포함한 패킷을 전송한다.
    • 커널은 __ip6_make_skb() 내부에서 fl6->flowi6_flags & FLOWI_FLAG_KNOWN_NH 검사를 수행하기 전에 레이스가 발생하면, 초기화되지 않은 메모리 영역을 읽어 kernel panic(A:H) 을 일으킨다.
  • 공격 단계
    1. 정찰 – 시스템에 IPv6 스택이 활성화돼 있는지 확인(sysctl net.ipv6.conf.all.disable_ipv6).
    2. 초기 접근 – 로컬 권한(L)으로 RAW 소켓을 생성 (socket(AF_INET6, SOCK_RAW, IPPROTO_RAW)).
    3. 실행·권한 획득 – 조작된 IPv6 패킷 전송 → 레이스 조건 발생 → 커널 내부에서 미초기화 값 접근 → 시스템 크래시(DoS).
    4. 지속/영향 – 서비스 중단, 재부팅 필요; 권한 상승은 직접 제공되지 않으나, 지속적인 DoS는 운영 환경을 마비시킬 수 있다.
  • 공격 표면
    • 노출 엔드포인트: 로컬 RAW IPv6 소켓 (/proc/net/raw 등)
    • 파라미터: IPV6_HDRINCL 플래그, IPv6 헤더 필드(next header, hop limit 등)
  • CVSS 벡터와 실제 조건 매핑
    • AV:L → 로컬 접근 필요 (루트가 아니어도 RAW 소켓 생성 가능)
    • AC:L → 레이스를 유발하기 위한 타이밍 조작은 비교적 쉬움(특정 패킷 전송 간격만 맞추면 됨)
    • PR:L → 일반 사용자 권한으로도 공격 가능
    • UI:N → 사용자의 추가 입력 필요 없음

악용 가능성: AV:L·AC:L·PR:L·UI:N 벡터는 로컬 환경에서 비특권 사용자가 복잡한 사전 준비 없이도 공격을 시도할 수 있음을 의미하지만, 실제 트리거가 되는 __ip6_make_skb() 내의 레이스 조건은 매우 짧은 시간 창에 정확히 FLOWI_FLAG_KNOWN_NH 플래그가 설정되는 상황을 요구하므로 구현 난이도는 높게 평가됩니다.
EPSS 0.0023이라는 수치는 현재까지 관측된 실제 악용 사례가 거의 없음을 보여주며, KEV에 등재되지 않은 점은 이 취약점이 아직 실전 위협으로 전환되지 않았다는 추가 증거입니다.
공격 표면은 IPv6 스택의 __ip6_make_skb() 함수와 이를 호출하는 경로인 IPv6 소켓 API(예: raw socket, AF_INET6)이며, 공격자는 패킷 헤더에 포함된 HDRINCL 비트를 조작해 fl6->flowi6_flags 값을 영향을 미칠 수 있습니다.
정찰 단계에서는 대상 커널 버전과 해당 함수가 존재하는지 확인하고, 로컬에서 raw IPv6 패킷을 전송할 수 있는 권한만 있으면 초기 접근이 가능합니다.
그 후 정확히 레이스 윈도우에 맞춰 FLOWI_FLAG_KNOWN_NH 플

💥 영향 분석

  • 성공 시 시스템 전체 가용성이 상실된다. 커널 OOPS가 발생해 시스템이 멈추고 자동 재부팅(또는 수동 복구)까지 요구된다.
  • 데이터 손실, 서비스 중단, SLA 위반 등 비즈니스 연속성에 직접적인 영향을 미친다.

🔗 관련 취약점·체이닝

  • IPv4 유사 버그: CVE‑2023‑xxxx(예시, 실제 번호는 확인 필요)에서 __ip_make_skb() 의 동일한 레이스가 패치된 바 있다. IPv6와 IPv4 스택은 비슷한 코드 경로를 공유하므로, 동일한 공격 로직을 양쪽에 적용할 수 있다.
  • 가능한 체인
    • 정보 노출 → 커널 로그(dmesg)에 uninit-value 경고가 남으면 공격자는 존재 여부를 확인한다.
    • 권한 상승 → DoS 후 재부팅 시, 부트 파라미터나 init 스크립트를 변조할 수 있는 별도 취약점(예: CVE‑2024‑xxxx)과 결합하면 권한 상승으로 이어질 수 있다. (추정)

🔎 탐지

  • 커널 로그: __ip6_make_skb에서 “uninitialized value” 혹은 “BUG: KASAN: uninit-value” 메시지가 기록될 경우 경보.
  • 시스템 안정성 모니터링: 비정상적인 재부팅, OOPS 발생률 급증, dmesg에 “kernel panic” 로그가 나타나면 탐지 가능.
  • 네트워크 트래픽: 로컬 RAW IPv6 패킷 전송량이 평소와 크게 차이나는 경우(tcpdump -i lo ip6) 경고 신호로 활용.

🛡️ 완화 방안

  • 패치 적용: 커밋 fc1092f51567을 포함한 최신 커널(4.14.313‑4.15, 4.19.281‑4.20, 5.4.241‑5.5, … 6.8.10)으로 업데이트하거나 백포트 패치를 적용한다.
  • 임시 방어: IPv6 사용이 불필요한 경우 sysctl -w net.ipv6.conf.all.disable_ipv6=1 로 비활성화하고, RAW 소켓 생성을 제한하는 SELinux/AppArmor 정책을 강화한다.
  • 모니터링 우선순위: 다중 소스에서 일관성이 확인된 점([교차검증])과 EPSS 0.0023이라는 낮은 실제 악용 확률([실측 악용예측])을 근거로, 현재는 monitor 수준으로 분류했으나, 패치 적용이 가장 신속하고 확실한 완화이다.

⚖️ 위험도 / 우선순위

  • 조치: monitor (모니터링)
  • 근거: CVSS=5.5 · non-KEV · EPSS=0.0023 · exploit=hard · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

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

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

로그인하기

불러오는 중…