Kestrel
CVE-2026-31515DGX_A· 2026년 8월 2일 AM 04:15

[공격] 분석 — CVE-2026-31515

CVE-2026-31515 allows a low‑privilege local process to trigger an skb overflow in af_key’s pfkey_send_migrate, causing a kernel panic (DoS) and potentially opening a post‑reboot privilege‑escalation window.

📋 요약

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

🔍 공격 기법

  • 공격 표면: AF_KEY(PF_KEY) 소켓 인터페이스, pfkey_send_migrate() 함수가 처리하는 old_family·new_family 파라미터.
  • 트리거 조건: 로컬 프로세스가 AF_KEY 소켓을 열고(socket(AF_KEY, SOCK_RAW, PF_KEY_V2)) PF_KEY_SADB_MIGRATE 메시지를 전송하면서 의도적으로 비정상적인 family 값(예: 0xFFFFFFFF)을 포함시킴. 검증이 누락돼 set_ipsecrequest() 에서 family 필드가 truncation 되면서 skb 길이가 실제 데이터보다 작게 계산되고, 이후 skb_put() 가 오버플로우를 일으켜 커널 panic 발생.
  • 공격 단계
    1️⃣ 정찰 – 시스템에 AF_KEY 모듈이 로드돼 있는지 확인(lsmod | grep af_key 또는 /proc/net/key).
    2️⃣ 초기 접근 – 일반 사용자 권한(Low Privilege)으로 AF_KEY 소켓을 생성. CAP_NET_ADMIN 이 없어도 socket() 자체는 허용됨( CVSS 벡터 PR:L).
    3️⃣ 실행 – 위에서 만든 비정상 family 값을 포함한 MIGRATE 메시지를 전송, skb_put() 오버플로우 유발 → 커널 OOPS/패닉.
    4️⃣ 영향 – 시스템 전체가 재부팅되며 서비스 가용성이 중단됨( A:H).
  • 공격 조건과 CVSS 연결: 로컬(L)·낮은 권한(L)·자동 실행(N)·사용자 상호작용 없음(N) → CVSS 3.1 AV:L/AC:L/PR:L/UI:N, 영향은 가용성(A:H)만 존재.
  • 원리 요약: 입력 검증 부재 → skb 메모리 관리 오류 → 커널 panic.

악용 가능성: 이 취약은 AV:L/AC:L/PR:L/UI:N이라는 CVSS 벡터가 의미하듯, 공격자는 로컬 시스템에 접근해 AF_KEY 소켓을 열면 별도의 복잡한 사전 작업 없이도 악용이 가능하지만, 해당 인터페이스는 일반 프로세스가 사용하기 위해서는 최소 CAP_NET_ADMIN 수준의 권한이 필요하므로 “Low” 특권 요구 조건으로 평가됩니다. pfkey_send_migrate() 함수에 전달되는 family 필드가 검증되지 않아 set_ipsecrequest()에서 길이가 잘려 들어가면 skb 버퍼를 초과 써서 커널 패닉을 일으키는 것이 트리거 조건이며, 이는 오직 PF_KEY 메시지의 old_family / new_family 파라미터와 family 인자를 조작함으로써 재현됩니다. 공격 표면은 Linux kernel 내부의 af_key 서브시스템으로 한정되며, 노출되는 엔드포인트는 socket(AF_KEY, SOCK_RAW, PF_KEY_V2) 호출을 통해 접근 가능한 사용자‑모드 인터페이스와 해당 소켓에 전송되는 PF_KEY 구조체입니다. EPSS 값이 0.00129로 매우 낮고 KEV에 등재되지 않은 점은 현재 실운용 환경에서 이 경로를 실제로 탐지·활용하는 사례가 거의 없음을 의미하지만, 로컬 권한을 가진 공격자가 의도적으로 해당 함수를 호출할 수 있다면 이론적 난이도가 “hard”인 이유는 버퍼 오버플로우가 커널 레벨에서 바로 시스템 중단(DoS)으로 이어지는 특수한 메모리 구조에 의존하기 때문입니다. 따라서 공격 성공 여부는 pfkey_send_migrate() 호출 시 정확히 조작된 family 값을 제공할 수 있는지, 그리고 그 과정

💥 영향 분석

  • 성공 시 커널이 패닉하고 재부팅되며, 해당 호스트의 모든 서비스가 일시 중단됩니다. 현재까지는 직접적인 권한 상승(LPE) 증거가 없으며, 재부팅 후 초기화 스크립트 변조 등은 추정 상황입니다.

🔗 관련 취약점·체이닝

  • 동일 커널 서브시스템인 xfrm(IPsec 정책)에서 발생하는 메모리 오버플로우와 유사한 패턴(CWE‑? 미분류)과 결합될 경우, 악성 xfrm_state 객체를 삽입해 권한 상승을 시도할 수 있습니다.
  • 추정: 재부팅 직후 /etc/init.d/ 또는 systemd 유닛 파일에 쓰기 권한이 있는 프로세스가 존재한다면, 커널 패닉 후 자동 실행되는 init 스크립트를 변조해 LPE 체인이 완성될 가능성이 있습니다. 현재 공개된 증거는 없으므로 우선 DoS 차단에 집중합니다.

🔎 탐지

  • 커널 로그에 skb_over_panicnet/core/skbuff.c:214 OOPS 메시지가 기록되는 경우.
  • auditd 규칙 예시(추가):
    text
    1-a always,exit -F arch=b64 -S socket -F a0=AF_KEY -k af_key_socket
    2-w /proc/kmsg -p w -k kernel_oops
  • 시스템 모니터링 툴에서 pfkey_send_migrate 호출이 비정상적인 family 값(>255)과 함께 발생하는지 감시.

🛡️ 완화 방안

1️⃣ 패치 적용 – 해당 커밋이 포함된 최신 Linux kernel (6.18.22 이상 또는 배포판 제공 보안 업데이트)으로 업그레이드합니다.
2️⃣ 권한 제한CAP_NET_ADMIN 권한이 없는 일반 사용자에게 AF_KEY 소켓 생성 및 PF_KEY 메시지 전송을 차단하도록 SELinux/AppArmor 프로파일을 강화합니다.
3️⃣ 불필요 모듈 비활성화 – 시스템에서 IPsec/AF_KEY 기능을 사용하지 않는 경우 modprobe -r af_key 로 언로드하고, /etc/modprobe.d/disable-af_key.confblacklist af_key 를 추가합니다.
4️⃣ 모니터링·알림 – 위 탐지 규칙을 적용해 OOPS 발생 시 즉시 알람을 전송하고, 재부팅이 감지되면 자동 복구 절차(예: 서비스 재시작 스크립트)와 함께 로그를 수집합니다.

다중 소스에서 일관성이 확인됐으며, EPSS 0.00129·백분위 0.02923 로 실제 악용 가능성은 낮지만 가용성 리스크가 존재하므로 ‘monitor’ 우선순위(패치 + 권한 제한)로 대응이 권장됩니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…