Campfire SSRF 취약점 보안 권고 (CVE-2026-100355): 내부 네트워크 보호 우회 및 정보 노출
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTCampfire 버전 1.4.4 및 이전 버전을 사용하는 모든 환경
인증된 사용자가 특수 IP 대역(CGNAT, NAT64 등)을 악용하여 내부 네트워크 자원에 접근하고 OpenGraph 메타데이터를 탈취할 수 있음
Campfire v1.4.5 이상으로 즉시 업데이트를 수행하여 보안 패치 적용
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
PATCH & WORKAROUND가장 효과적인 해결책은 공식 패치가 포함된 v1.4.5 버전으로 업데이트하는 것입니다.
1. 패키지 업데이트
# Campfire 설치 디렉토리에서 업데이트 수행
git pull
bundle install2. 임시 완화 조치 (패치가 불가능한 경우) - **WAF 규칙 적용**: HTTP 요청 본문에 포함된 URL 중 `100.64.0.0/10`, `64:ff9b::/96`, `2002::/16` 대역으로 향하는 요청을 차단하십시오. - **기능 비활성화**: 신뢰할 수 없는 사용자의 링크 프리뷰 생성을 제한하거나 OpenGraph Unfurling 기능을 일시적으로 중단하십시오.
코드 수정 전에도 가상 패치(Virtual Patching)로 웹 공격을 즉시 차단하세요
서버 재시작이나 긴급 패치가 어려운 운영 환경이라면 클라우드 WAF 관리형 룰셋을 활성화하여 SQLi, RCE, XSS 익스플로잇 페이로드를 엣지에서 1분 만에 차단할 수 있습니다.
취약점 발생 원리 및 공격 메커니즘
Campfire의 OpenGraph 프리뷰(Unfurl) 기능에서 발생하는 SSRF(Server-Side Request Forgery) 취약점입니다. 해당 애플리케이션은 RestrictedHTTP::PrivateNetworkGuard를 통해 사설 IP 접근을 차단하려 시도하지만, Ruby의 IPAddr 클래스가 제공하는 기본 조건자(private?, loopback?, link_local?)만으로는 모든 특수 목적 IP 대역을 필터링하지 못하는 결함이 있습니다. 특히 CGNAT(100.64.0.0/10), NAT64(64:ff9b::/96), 6to4(2002::/16) 대역은 일반적인 사설 IP 체크를 우회할 수 있으며, 공격자는 이를 통해 내부망의 특정 호스트로 서버가 요청을 보내도록 유도할 수 있습니다. 비록 영향도가 OpenGraph 메타데이터 반환으로 제한되지만, 내부 인프라의 존재 여부나 일부 설정 정보를 노출시킬 위험이 있습니다.
공식 보안 권고문 및 참조 링크
Campfire is a web-based chat application. In version 1.4.4 and earlier, when a Campfire message contains a link, the server fetches it to build an OpenGraph unfurl preview. `RestrictedHTTP::PrivateNetworkGuard` relied on Ruby's `IPAddr#private? `` IPAddr#loopback?`, and `IPAddr#link_local?` predicates plus IPv4-mapped and IPv4-compatible checks, which do not cover several special-use ranges. An authenticated user can post a link to a hostname resolving to CGNAT `100.64.0.0/10`, NAT64 `64:ff9b::/96` or `64:ff9b:1::/48`, or 6to4 `2002::/16` to bypass the guard and cause server-side requests to internal network resources. The NAT64 and 6to4 ranges can embed an internal IPv4 target. Confidentiality impact is limited to returned OpenGraph metadata, and most internal endpoints return none. There is no integrity or availability impact. An initial fix was released in version 1.4.5.
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.