CVE-2026-105299 in Pingora정보

요약

\~에 의해 VulDB • 2026. 10. 20.

요약

0.9.0 버전 이전의 pingora-proxy에서 HTTP/1 업스트림 경로는 다운스트림 요청을 `upstream_request_filter`를 통해 통과시켜 클라이언트의 `Connection` 헤더, 기타 홉-바이-홅(hop-by-hop) 헤더, 또는 `Connection`이 지정한 헤더들을 제거하지 않은 채로 업스트림에 작성했습니다. 그러나 RFC 9110 섹션 7.6.1은 중간자(intermediaries)가 이러한 헤더들을 제거해야 한다고 요구합니다. HTTP/2 업스트림 경로는 이미 `Connection` 및 관련 HTTP/1 전용 헤더들을 제거하고 있었습니다. 따라서 클라이언트는 애플리케이션이 `upstream_request_filter`에서 추가하는 헤더(예: `Connection: keep-alive`, `X-Forwarded-For`)를 지명할 수 있습니다. 그러면 `Connection`을 존중하는 다운스트림 HTTP/1 중간자는 Pingora가 추가한 헤더가 오리지널 서버에 도달하기 전에 이를 제거하게 됩니다.

영향

이 취약점은 구체적으로 Pingora와 오리지널 서버 사이에 위치하며, `Connection` 지명(header nominations)을 처리하는 HTTP/1 중간자(예: Go의 `net/http/httputil.ReverseProxy`)가 존재하고, 해당 중간자가 추가한 헤더를 신뢰하는 오리지널 서버로 구성된 체인형 배포 환경에서 영향을 미칩니다. 원격 인증 공격자는 이러한 헤더들이 제거되도록 유도하여 권한 부여(authorization) 우회가 가능해집니다. 보고자는 오리지널 서버의 IP 기반 검증에 `X-Forwarded-For`를 사용하여, IP 제한이 적용된 엔드포인트에 대한 접근을 시연했습니다. 이는 Apache HTTP Server의 CVE-2022-31813과 동일한 유형의 문제입니다.

Cloudflare CDN 고객은 영향을 받지 않았습니다. 내부 Pingora 서비스에서는 위에서 설명한 체인형 배포가 존재하지 않으며, `Connection` 헤더는 Pingora 게이트웨이에 도달하기 전에 정제(sanitized)되기 때문입니다.

완화 조치: * pingora 0.9.0 이상으로 업그레이드하십시오. 기본적으로 Pingora는 이제 업스트림 요청에서 홉-바이-홅(hop-by-hop) 헤더 및 `Connection`이 지정한 헤더들을 제거하며, `Host`, `X-Forwarded-For`, `X-Forwarded-Host`, `X-Forwarded-Proto` 또는 의사(pseudo-)헤더를 지명하는 요청은 거부합니다. 이는 `PeerOptions::http_upstream_request_policy`(HttpUpstreamRequestPolicy)에 의해 제어됩니다. 수정 커밋: https://github.com/cloudflare/pingora/commit/28c18e6b6b04dd0bd937234e5950049e6d74cded , https://github.com/cloudflare/pingora/commit/ca23f1668eca8e78be7ba62ef0edbd458b40eeee * 오리지널 서버가 Pingora가 추가한 헤더에 의존하는 경우 `HttpUpstreamRequestPolicy::preserve()`를 사용하지 마십시오. 이는 이전의 통과(passthrough) 동작을 복원합니다. * 업그레이드가 불가능한 경우: `upstream_request_filter` 내에서 신뢰할 수 있는 헤더들을 추가하기 전에 `Connection` 헤더와 그것이 지정한 모든 헤더를 제거하십시오.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

출처

Do you want to use VulDB in your project?

Use the official API to access entries easily!