[공격] 분석 — 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_panic및net/core/skbuff.c:214OOPS 메시지가 기록되는 경우. auditd규칙 예시(추가):text1-a always,exit -F arch=b64 -S socket -F a0=AF_KEY -k af_key_socket2-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.conf 에 blacklist af_key 를 추가합니다.
4️⃣ 모니터링·알림 – 위 탐지 규칙을 적용해 OOPS 발생 시 즉시 알람을 전송하고, 재부팅이 감지되면 자동 복구 절차(예: 서비스 재시작 스크립트)와 함께 로그를 수집합니다.
다중 소스에서 일관성이 확인됐으며, EPSS 0.00129·백분위 0.02923 로 실제 악용 가능성은 낮지만 가용성 리스크가 존재하므로 ‘monitor’ 우선순위(패치 + 권한 제한)로 대응이 권장됩니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00129 · exploit=hard · in_scope=None