Kestrel
CVE-2026-31427DGX_A· 2026년 8월 2일 AM 12:30

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

CVE-2026-31427 is a local kernel flaw in nf_conntrack_sip that can corrupt SIP SDP session addresses (often to 0.0.0.0), leading to call disruption; immediate mitigation is to patch the kernel or disable the SIP conntrack helper.

📋 요약

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

🔍 공격 기법

  • 트리거 조건: 로컬에서 SIP(UDP/TCP 5060 등) 패킷을 전송하고, SDP 본문에 m= 라인이 없거나 모두 비활성(m=audio 0 …) 혹은 인식되지 않는 미디어 타입만 포함될 경우 process_sdp() 내부의 rtp_addr 변수가 초기화되지 않는다.
  • 실행 흐름
    1️⃣ 정찰 – 시스템에 로드된 nf_conntrack_sip 모듈 확인 (lsmod | grep nf_conntrack_sip).
    2️⃣ 초기 접근 – 로컬 사용자(권한 L) 가 raw/UDP 소켓을 이용해 임의 SIP INVITE 또는 UPDATE 메시지를 전송.
    3️⃣ 취약점 발동 – 커널이 process_sdp() 를 호출하고, 초기화되지 않은 rtp_addrhooks->sdp_session() 에 전달 → nf_nat_sip_sdp_session() 가 스택 잔류값을 IP 주소로 포맷.
    4️⃣ 결과 – 세션 레벨 o=·c= 필드가 0.0.0.0(또는 임의 값) 로 덮어써져, 이후 RTP 흐름이 무시되거나 잘못된 호스트로 전송됨 → 서비스 거부(DoS) 혹은 통화 라우팅 변조 가능.
  • 공격 표면:
    • 엔드포인트: udp://*:5060 (또는 TCP 5060, 5061 등 SIP 포트)
    • 파라미터/페이로드: SDP 본문 전체 혹은 부분적으로 m= 라인 누락·비활성화
  • CVSS ↔ 실제 조건 매핑
    • AV:L → 로컬 프로세스가 직접 패킷을 주입해야 함 (원격 공격 불가능)
    • AC:L, PR:L → 낮은 난이도·낮은 권한 사용자도 가능 (raw socket 허용 시)
    • UI:N → 사용자 인터랙션 필요 없음

악용 가능성: 이 취약점은 AV:L(Local) · AC:L(Low) · PR:L(Low) · UI:N(None) 로 평가되었으므로, 공격자는 해당 호스트에 직접 패킷을 주입하거나 로컬 프로세스로부터 SIP 트래픽을 생성할 수만 있으면 충분합니다. 그러나 rtp_addr 가 초기화되지 않도록 만들려면 SDP 본문에 m= 라인이 전혀 없거나 모두 비활성(m=audio 0 …) 혹은 인식되지 않는 미디어 타입이어야 하며, 이는 정상적인 SIP 세션에서는 드물게 발생하는 특수한 입력 조건입니다. 공격자는 이 조건을 만족시키는 SIP INVITE/200 OK 등을 직접 전송해야 하므로, Attack Complexity 가 낮다고 평가되지만 실제로는 특정 SDP 구문을 정밀하게 조작해야 하는 장벽이 존재합니다. 또한 Privileges Required 가 Low 로 표시된 이유는 Netfilter 모듈이 커널 레벨에서 동작하므로 일반 사용자 권한으로도 트래픽을 전송할 수 있기 때문이며, 별도의 관리자 권한 상승 없이도 공격이 가능함을 의미합니다. EPSS = 0.0012 라는 매우 낮은 실측 위험 점수와 KEV에 등재되지 않은 상태는 현재까지 이 조건을 만족하는 실제 악용 사례가 거의 보고되지 않았음을 보여줍니다. 따라서 공격 표면은 SIP/SDP를 처리하는 Linux 기반 NAT·방화벽 서버의 nf_conntrack_sip 모듈이며, 해당 엔드포인트에 접근 가능한 내부 네트워크 혹은 동일 호스트에서만 이용될 수 있는 제한된 위협 경로라고 할 수 있습니다.

💥 영향 분석

  • SIP 세션의 오너(o=)와 연결 주소(c=)가 0.0.0.0 으로 변조되어 통화가 즉시 중단됨(DoS).
  • 내부망에서 정상적인 SIP 프록시·SBC 가 해당 세션을 라우팅하려 할 경우, 잘못된 IP 로 인해 트래픽 손실 및 서비스 품질 저하.
  • 공격자가 이후에 변조된 SDP 를 이용해 악의적인 RTP 스트림을 삽입할 가능성은 존재하지만, 현재 코드 경로는 주소만 교체하므로 직접적인 원격 권한 상승(RCE)은 발생하지 않음.

🔗 관련 취약점·체이닝

  • 유형: CWE‑457 (Use of Uninitialized Variable) → 메모리 오염을 이용한 데이터 변조.
  • 가능 체인 예시:
    • Uninitialized VariableIncorrect Address HandlingDenial‑of‑ServiceSubsequent Exploitation (예: 다른 커널 모듈에서 동일 스택 값 활용해 권한 상승).
    • 추정: 동일 프로세스가 CAP_NET_RAW 를 보유하고 있으면, 변조된 SDP 로 내부 SIP 프록시를 속여 악의적인 RTP 패킷을 전송하는 Session Hijacking 시나리오와 결합될 수 있음.

🔎 탐지

  • 커널 audit 로그에 nf_conntrack_sipsdp_session 콜백을 호출하면서 주소가 0.0.0.0 혹은 비정상적인 IPv4 값으로 기록되는 이벤트.
  • dmesg/kern.log 에서 SIP SDP rewrite to 0.0.0.0 와 유사한 메시지(패치 적용 전).
  • Netfilter conntrack 상태 테이블(conntrack -L)에 SIP 세션이 UNREPLIED 로 남아 있고, caddr=0.0.0.0 필드가 보이는 경우.

🛡️ 완화 방안

1️⃣ 패치 적용 – 해당 커널 버전(2.6.26 ~ 6.19.11) 중 최신 패치를 배포하고, nf_conntrack_sip 모듈이 포함된 최신 릴리즈로 업그레이드.
2️⃣ 헬퍼 비활성화sysctl -w net.netfilter.nf_conntrack_helper=0 혹은 modprobe -r nf_conntrack_sip 로 모듈 언로드.
3️⃣ 접근 제한 – SELinux/AppArmor 정책으로 SIP 포트에 대한 raw socket 사용을 제한하고, 불필요한 로컬 프로세스가 해당 포트를 사용할 수 없게 함.
4️⃣ 모니터링/차단 – iptables/nftables 규칙 추가: -p udp --dport 5060 -m string --string "c=IN IP4 0.0.0.0" --algo bm -j DROP.
5️⃣ 감사 규칙auditctl -w /proc/net/ip_conntrack_helper -p wa -k sip_helper 로 변경 시점 기록.

위 조치를 순차적으로 적용하면 현재 CVE-2026-31427 의 실전 위험을 최소화할 수 있습니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…