[단독방어] 분석 — CVE-2026-23457
The nf_conntrack_sip Content‑Length truncation bug allows crafted SIP packets to cause mis‑parsing and potential remote code execution, mitigated immediately by dropping oversized Content‑Length values at the firewall.
📋 요약
- 심각도 high · CVSS 8.6 · EPSS 0.00433 · 악용난이도 moderate
🔍 공격 기법
SIP 클라이언트·서버 간 TCP 연결에 Content‑Length 헤더값을 2³² + N(예: 4294967328)처럼 UINT_MAX를 초과하도록 조작한 패킷을 전송합니다. nf_conntrack_sip 모듈은 simple_strtoul() 반환값을 unsigned int 로 저장해 truncation이 발생하고, 메시지 경계를 잘못 계산해 남은 페이로드를 두 번째 SIP 메시지로 오인합니다. 이후 SDP 파서가 비정상 데이터를 처리하면서 커널 메모리 손상·권한 상승이 가능해집니다.
악용 가능성: 이 취약점은 CVSS AV:N/AC:L/PR:N/UI:N 로 평가되었으므로, 원격 공격자는 네트워크를 통해 직접 패킷을 전송하기만 하면 별도의 인증이나 사용자 상호작용 없이 이용할 수 있습니다. 실제 공격 조건은 SIP TCP 세션에 Content‑Length 헤더 값을 UINT_MAX(2³²‑1)보다 크게 설정하여, 커널의 simple_strtoul() 반환값이 64비트인 반면 unsigned int clen 에 저장될 때 하위 32비트만 남는 상황을 만들면 됩니다. 이때 트리거된 오버플로우는 메시지 경계 계산 오류를 일으켜, 동일 TCP 세그먼트에 포함된 뒤이어 전송되는 데이터를 두 번째 SIP 메시지로 오인하고 SDP 파서를 호출하게 됩니다. EPSS 0.00433 은 0.4 % 수준의 실제 악용 가능성을 보여주며, KEV 리스트에 등재되지 않았음에도 불구하고 공격자는 비교적 낮은 난이도로 성공적인 원격 코드 실행이나 서비스 거부를 유발할 수 있습니다. 노출된 공격 표면은 리눅스 커널이 SIP 트래픽을 처리하는 nf_conntrack_sip 모듈이며, 특히 외부에서 들어오는 TCP 5060(또는 5061) 포트의 SIP 패킷이 대상이 됩니다. 따라서 해당 엔드포인트가 공개된 환경일 경우, 악의적인 클라이언트가 조작된 Content‑Length 값을 포함한 SIP 요청을 전송함으로써 취약점을 활용할 수 있습니다.
💥 영향 분석
- 동일 TCP 세그먼트 내에 악의적인 데이터가 추가 해석되어 커널 내부 구조를 훼손 → 서비스 장애(DoS) 또는 권한 상승.
- 공격자가 SIP 서비스를 운영 중인 호스트에 직접 접근할 경우, 로컬 루트 권한을 획득하거나 네트워크 스택 전체를 마비시킬 수 있음.
🔗 관련 취약점·체이닝
추정: 이와 유사하게 unsigned integer truncation 오류가 발생하는 CWE‑681(부적절한 타입 변환) 및 커널 모듈 파서에서 입력 검증 미비(CWE‑20, 입력 검증 부재) 취약점과 연계될 수 있습니다. 이러한 유형은 다른 프로토콜 파싱 모듈(nf_conntrack_ftp, nf_conntrack_smb 등)에서도 동일한 방식으로 체이닝되어 추가적인 권한 상승 경로를 제공할 가능성이 있습니다.
🔎 탐지
-
로그 지표
kern.log·dmesg:nf_conntrack_sip: content length truncated와 유사한 WARN/ERROR 메시지가 발생하면 의심.- Netfilter audit 로그(
auditd):type=PROCTITLE msg='... sip_help_tcp ...'와 함께content_len=필드가 비정상적으로 작은 값(예: ≤ 100)으로 기록된 경우.
-
SIEM 탐지 규칙 예시
text1// Splunk SPL2index=kernel sourcetype=kern.log3"nf_conntrack_sip" AND ("truncated" OR "content length")4| stats count by host, _time5| where count > 5text1// Elastic Kibana Query DSL (pseudo)2{3 "bool": {4 "must": [5 { "match_phrase": { "message": "nf_conntrack_sip" } },6 { "regexp": { "message": ".*(truncated|content length).*" } }7 ],8 "filter": { "range": { "@timestamp": { "gt": "now-5m" } } }9 }10} -
패킷 레벨 정규식 (IDS/IPS)
text1^\x16\x03\x01.{2}\x00.*Content-Length:\s*(4[2-9]\d{8,}|[5-9]\d{9,})\r\n→ Content‑Length 가 UINT_MAX(4294967295) 초과인 SIP 패킷을 매칭.
-
오탐 튜닝
- 정상적인 대용량 SIP 스트리밍 서비스(예: 대형 콜센터)에서는 높은 Content‑Length 가 발생할 수 있음.
- 오탐 감소를 위해
content_len > remaining_tcp_payload조건을 추가하거나, 해당 세션의 전체 패킷 길이가 비정상적으로 짧은 경우에만 경보를 올리도록 설정.
🛡️ 완화 방안
-
즉시(긴급 차단)
- SIP 프로토콜이 현재 서비스에 불필요하면 커널 모듈을 즉시 비활성화:
modprobe -r nf_conntrack_sip또는/etc/modprobe.d/disable-sip.conf에blacklist nf_conntrack_sip추가 후 재부팅. - 적용 난이도 ★☆☆, 운영 영향 ✅(SIP 서비스 중단), 검증 :
lsmod | grep sip로 모듈 비로드 확인.
- SIP 프로토콜이 현재 서비스에 불필요하면 커널 모듈을 즉시 비활성화:
-
단기(완화)
- 방화벽 수준에서 SIP 트래픽 차단 또는 제한:
- iptables 예시:
iptables -A INPUT -p tcp --dport 5060 -m conntrack --ctstate NEW -j DROP(필요 시 허용 리스트에만 추가). - 난이도 ★★☆, 영향 ⚠️(SIP 서비스 차단), 검증 :
iptables -L -v -n로 규칙 적용 확인.
- iptables 예시:
- 커널 파라미터를 이용해 Content‑Length 검증 강화:
- sysctl
net.netfilter.nf_conntrack_helper=0로 모든 프로토콜 헬퍼 비활성화 후, 개별 필요 서비스만 별도 설정. - 난이도 ★★★, 영향 ⚠️(다른 연결 추적 기능 감소), 검증 :
sysctl -a | grep nf_conntrack_helper.
- sysctl
- 방화벽 수준에서 SIP 트래픽 차단 또는 제한:
-
근본(해결)
- 최신 패치가 포함된 커널 버전으로 업그레이드:
- 2.6.34‑5.10.253, 5.11‑5.15.203, 5.16‑6.1.167, 6.2‑6.6.130, 6.7‑6.12.78, 6.13‑6.18.20, 6.19‑6.19.10 등 모든 영향을 받는 릴리즈에 대해 vX.Y.Z‑security 패키지를 적용.
- 구현 난이도 ★★★★, 운영 영향 🔧(재부팅 필요), 검증 :
uname -r로 커널 버전 확인 후/boot/config-$(uname -r)에CONFIG_NF_CONNTRACK_SIP=y가 포함된 것을 확인하고, 패치 적용 로그(/var/log/dpkg.log또는rpm -q kernel) 를 점검.
- 최신 패치가 포함된 커널 버전으로 업그레이드:
-
잔여 리스크
- 패치를 적용하기 전까지는 위 즉시·단기 조치에 의존해야 하며, 모듈 비활성화가 불가능한 환경에서는 트래픽 제한만으로 완전 방어가 어려울 수 있습니다.
- EPSS 0.00433(실측 악용 가능성)과 CVSS 8.6(높은 심각도)을 고려하면, 패치 적용 시점까지는 침입 탐지와 방화벽 차단을 엄격히 운영해야 합니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=8.6 · non-KEV · EPSS=0.00433 · exploit=moderate · in_scope=None