🔍 CVE-2026-2835

9.1
CVSS Score
CRITICAL
2026-03-05
2026-06-17 10:31
✅ 완료

🇰🇷 한글 설명

Pingora의 HTTP/1.0 및 Transfer-Encoding 요청 파싱 과정에서 HTTP 요청 스머글링(CWE-444) 취약점이 발견되었습니다. 이 문제는 HTTP/1.0 요청 본문의 종료 구분 방식 처리 오류와 다중 Transfer-Encoding 값 처리 미흡으로 인해 발생하며, 프록시와 백엔드 서버 간의 요청 프레임 불일치를 유발합니다.

💡 쉬운 설명

해커가 특수하게 조작된 요청을 보내 프록시 서버와 실제 서버가 서로 다른 요청을 읽게 만드는 공격입니다. 이를 통해 보안 규칙을 우회하거나 다른 사용자의 정보를 가로챌 수 있습니다.

🇺🇸 원문 (English)

An HTTP Request Smuggling vulnerability (CWE-444) has been found in Pingora's parsing of HTTP/1.0 and Transfer-Encoding requests. The issue occurs due to improperly allowing HTTP/1.0 request bodies to be close-delimited and incorrect handling of multiple Transfer-Encoding values, allowing attackers to send HTTP/1.0 requests in a way that would desync Pingora’s request framing from backend servers’. Impact This vulnerability primarily affects standalone Pingora deployments in front of certain backends that accept HTTP/1.0 requests. An attacker could craft a malicious payload following this request that Pingora forwards to the backend in order to: * Bypass proxy-level ACL controls and WAF logic * Poison caches and upstream connections, causing subsequent requests from legitimate users to receive responses intended for smuggled requests * Perform cross-user attacks by hijacking sessions or smuggling requests that appear to originate from the trusted proxy IP Cloudflare's CDN infrastructure was not affected by this vulnerability, as its ingress proxy layers forwarded HTTP/1.1 requests only, rejected ambiguous framing such as invalid Content-Length values, and forwarded a single Transfer-Encoding: chunked header for chunked requests. Mitigation: Pingora users should upgrade to Pingora v0.8.0 or higher that fixes this issue by correctly parsing message length headers per RFC 9112 and strictly adhering to more RFC guidelines, including that HTTP request bodies are never close-delimited. As a workaround, users can reject certain requests with an error in the request filter logic in order to stop processing bytes on the connection and disable downstream connection reuse. The user should reject any non-HTTP/1.1 request, or a request that has invalid Content-Length, multiple Transfer-Encoding headers, or Transfer-Encoding header that is not an exact “chunked” string match.

📍 영향받는 시스템

HTTP/1.0 요청을 허용하는 특정 백엔드 앞의 Pingora 단독 배포 환경 (v0.8.0 미만 버전)

⚔️ 공격 벡터

조작된 HTTP/1.0 요청 또는 다중 Transfer-Encoding 헤더를 이용한 요청 스머글링

🛡️ 대응 방법

Pingora를 v0.8.0 이상 버전으로 업그레이드하거나, HTTP/1.1 이외의 요청 및 비정상적인 헤더를 차단하도록 필터 로직을 설정하십시오.

🔧 검증 코드

명령어 결과에 v0.8.0 이상의 버전이 출력되면 취약점이 해결된 상태입니다.

Shell / Script
pingora --version 2>/dev/null | grep -E 'v0\.(8|[9]|1[0-9])'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

💻 영향받는 소프트웨어

Cloudflare Pingora