CVE-2026-69245 in Guzzle
요약
\~에 의해 VulDB • 2026. 08. 04.
Guzzle는 확장 가능한 PHP HTTP 클라이언트입니다. 버전 7.15.2 및 8.0.1 이전의 SetCookie::matchesDomain() 함수는 Domain이 IP 리터럴이나 숫자 호스트로 인식되지 않는 한, 쿠키 도메인의 모든 하위 도메인에 대해 해당 쿠키를 허용합니다. 이 결정은 도메인 자체의 텍스트에서 비롯되므로, 전송 계층에서 주소로 해석되는 두 가지 표기 방식 모두 하위 도메인 범위를 유지하게 됩니다. 0x7f000001 및 0177.0.0.0x1과 같은 16진수 및 혼합 기저 형태는 인식되지 않지만, libcurl 8.21.0은 이를 모두 127.0.0.1로 읽습니다. 퍼센트 이스케이프 처리된 Domain의 경우 퍼센트 디코딩이 숫자 파싱보다 위에 위치하므로 두 분기에서 해당 범위가 유지됩니다. 따라서 192.168.0.%31 및 127.0.0.1%2e는 URI 문법상 주소 리터럴이 아닌 등록 이름으로 간주되며, 어떤 기저 클래스의 숫자 규칙도 이를 분류하지 않습니다. 반면 libcurl은 호스트를 해결하기 전에 디코딩하여 이를 192.168.0.1 및 127.0.0.1로 읽습니다. Domain=0x7f7f000001에 대해 저장된 쿠키는 evil.0x7f000001로의 요청 시 Cookie 헤더에 포함되어, 해당 주소가 아닌 호스트에게 세션 식별자 또는 토큰이 유출됩니다. 또한 Domain=0x7f000001을 설정하는 evil.0x7f000001からの 응답은 쿠키 저장소에 받아들이지고 해당 주소로 재전송되므로, 유사한 이름을 응답하는 서버가 세션을 고정하거나 애플리케이션 상태를 설정할 수 있습니다. 악용하려면 애플리케이션이 쿠키 지원을 활성화하고 이러한 표기 방식 중 하나로 원본을 지정하며, 이름이 그 표기로 끝나는 호스트에 접속해야 합니다. 이 문제는 버전 7.15.2 및 8.0.1에서 수정되었습니다.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.