[분석가] 분석 — CVE-2025-60876
CVE-2025-60876 is an HTTP Request Splitting vulnerability in BusyBox wget (< 1.37.0) caused by improper validation of C0 control characters, requiring an upgrade to version 1.37.0 or strict input filtering.
📋 요약
- 심각도 medium · CVSS 6.5 · EPSS 0.00285 · 악용난이도 moderate
🔍 공격 기법
(1) 트리거 조건: wget이 HTTP 요청의 request-target(경로 및 쿼리)을 처리할 때, 유효성 검사를 거치지 않은 C0 제어 문자(CR(0x0D), LF(0x0A)) 및 raw space(0x20)가 포함된 입력을 수용함으로써 발생합니다.
(2) 공격 단계:
- 정찰: 대상 시스템이 BusyBox 기반의
wget을 사용하여 외부 서버와 통신하는지 확인합니다. - 초기 접근: 공격자는
wget이 요청을 보내는 URL 경로에 제어 문자를 삽입하여 전달하도록 유도합니다. - 실행: HTTP request-line이 분리(Splitting)되며, 공격자가 의도한 임의의 HTTP 헤더가 주입됩니다.
- 영향: 서버 측에서 분리된 두 번째 요청을 별도의 정당한 요청으로 인식하게 하여 비정상적인 응답을 유도하거나 캐시 오염 등을 시도합니다.
(3) 공격 표면:wget이 접근하는 HTTP request-target (Path, Query String).
(4) CVSS 벡터 연결:AV:N/AC:L/PR:N/UI:N으로 네트워크를 통해 인증 없이 낮은 난이도로 공격 가능하며, 사용자 상호작용이 필요하지 않습니다.
악용 가능성: 본 취약점은 AV:N/AC:L/PR:N/UI:N 벡터를 가짐에 따라, 인증되지 않은 원격 공격자가 특별한 사용자 상호작용 없이 네트워크를 통해 직접 접근 가능한 환경에서 낮은 난이도로 트리거할 수 있습니다. 공격 표면은 BusyBox wget이 HTTP 요청을 생성하여 전송하는 엔드포인트이며, 특히 request-target(경로 및 쿼리) 파라미터에 CR(0x0D), LF(0x0A) 및 Raw Space(0x20)와 같은 C0 제어 문자를 삽입함으로써 HTTP Request Splitting을 유도하는 구조입니다. 이를 통해 공격자는 임의의 HTTP 헤더를 주입하여 요청 내용을 조작할 수 있는 권한을 가집니다. 다만, EPSS 수치가 0.00285로 매우 낮고 KEV(Known Exploited Vulnerabilities)에 등재되지 않은 점은 현재 야생(In-the-wild)에서의 실제 악용 사례가 드물거나 제한적임을 시사합니다. 따라서 이론적인 공격 가능성은 높으나, 실제 위협 수준은 특정 조건의 타겟을 대상으로 한 정밀 공격이나 2차 취약점과의 체이닝 단계에서 활용될 가능성이 높은 Moderate 등급으로 판단됩니다.
💥 영향 분석
(1) 기술적 위험: HTTP Request Splitting을 통해 요청 라인이 분리되어 공격자가 제어하는 헤더가 주입됩니다. 이로 인해 추정: 프록시 서버나 캐시 서버를 속이는 Cache Poisoning, 또는 대상 서버에 의도치 않은 추가 요청을 전송하여 데이터 무결성을 훼손(I:L)하거나 일부 정보가 유출(C:L)될 위험이 있습니다.
(2) 비즈니스 영향: BusyBox는 임베디드 장비 및 경량 컨테이너 환경에서 광범위하게 사용되므로 노출 규모가 매우 큽니다. 서비스의 신뢰성 저하 및 데이터 변조 가능성이 존재하며, 이는 규제 준수 관점에서 리스크로 작용할 수 있습니다.
🔗 관련 취약점·체이닝
추정: 본 취약점은 단독으로 시스템 전체 권한을 획득하기보다, 다른 취약점과 체이닝될 가능성이 높습니다. 예를 들어 'HTTP Request Splitting → 서버 측 요청 위조(SSRF) 또는 캐시 오염 $\rightarrow$ 세션 하이재킹/권한 상승' 형태로 이어지는 패턴이 예상됩니다.
🔎 탐지
(1) 로그 지표: HTTP 요청 로그의 URI 필드 내에 %0D, %0A (URL 인코딩된 형태) 또는 raw binary 제어 문자가 포함되어 있는지 확인합니다.
(2) 탐지 규칙 예시:
- 로직 1:
request_uri필드에서\r또는\n문자가 발견되는 경우 경보 발생. - 로직 2 (정규식):
(?i)(%0d|%0a|[\x0D\x0A])패턴이 HTTP request-target 내에 존재하는지 검사. - 로직 3: 동일한 소스 IP에서 짧은 시간 내에 비정상적인 제어 문자가 포함된 다수의 URI 요청이 발생하는지 임계값 기반 탐지.
(3) 오탐 시나리오 및 튜닝: 일부 레거시 애플리케이션이 특수 문자를 사용하는 경우 오탐이 발생할 수 있습니다. 정상적인 트래픽 패턴을 분석하여 화이트리스트를 적용하거나,wget호출 경로의 입력값 검증 로직을 추가하여 필터링합니다.
🛡️ 완화 방안
- 즉시(긴급 차단): WAF 또는 IPS에서 HTTP 요청 내의 raw CR/LF 및 비정상적인 제어 문자를 차단하는 시그니처를 적용합니다. (난이도: 낮음 / 영향: 거의 없음 / 검증: 공격 페이로드 전송 테스트)
- 단기(완화):
wget에 전달되는 URL 입력값에 대해\r,\n,(space) 문자를 제거하거나%20등으로 인코딩하는 래퍼(wrapper) 스크립트를 적용합니다. (난이도: 중간 / 영향: 일부 특수 URI 요청 실패 가능성 / 검증: 입력값 필터링 확인) - 근본(해결): BusyBox를 1.37.0 버전 이상으로 업데이트합니다. (난이도: 중간 / 영향: 펌웨어/이미지 업데이트에 따른 재부팅 필요 / 검증:
busybox wget --version확인)
[분석 근거]
본 리포트는 다중 소스 교차검증을 통해 데이터 일관성이 확인되었으며, 실측 EPSS(0.00285, 백분위 0.20329)를 기반으로 실제 악용 가능성을 moderate 등급으로 판단했습니다. CVSS 6.5의 이론적 심각도와 낮은 EPSS 수치를 종합하여, 즉시 대응보다는 이번 주 내 처리를 권고하는 'scheduled' 우선순위로 결정되었습니다.
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=6.5 · non-KEV · EPSS=0.00285 · exploit=moderate · in_scope=None