🇰🇷 한글 설명
Guzzle 7.12.1 미만 버전의 CookieJar에서 도메인 속성이 점(.)으로만 구성되거나 공백이 포함된 경우 이를 빈 문자열로 잘못 처리하는 취약점이 발견되었습니다. 이로 인해 공격자가 설정한 쿠키가 동일한 쿠키 저장소를 사용하는 다른 무관한 호스트로 전송될 수 있습니다. 이는 쿠키 주입이나 세션 고정 공격으로 이어질 수 있습니다.
💡 쉬운 설명
웹사이트가 쿠키를 저장할 때 도메인 이름을 확인하는 과정에서 실수가 있어, 특정 쿠키가 엉뚱한 사이트로 전달될 수 있는 문제입니다. 이를 통해 공격자가 사용자의 로그인 세션을 가로채거나 조작할 위험이 있습니다.
🇺🇸 원문 (English)
Guzzle is an extensible PHP HTTP client. Prior to 7.12.1, CookieJar incorrectly accepts cookies with a dot-only Domain attribute and whitespace-padded variants. SetCookie::matchesDomain() removes leading dots from the cookie domain, normalizing dot-only values to the empty string; SetCookie::validate() only rejected a strictly empty domain, so these cookies could be stored and the empty normalized domain was treated as matching any request host. An attacker-controlled origin that an application requests with a shared cookie jar can therefore set a cookie that Guzzle later sends to unrelated hosts using the same jar. This may allow cookie injection or session fixation against downstream services, depending on how those services interpret the injected cookie. This vulnerability is fixed in 7.12.1.
📍 영향받는 시스템
Guzzle PHP HTTP client versions prior to 7.12.1
⚔️ 공격 벡터
공격자가 제어하는 사이트에서 특수하게 조작된 도메인 속성을 가진 쿠키를 설정하여, 동일한 쿠키 저장소를 공유하는 다른 사이트로 쿠키가 전송되도록 유도함
🛡️ 대응 방법
Guzzle 라이브러리를 7.12.1 버전 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전 정보가 7.12.1 미만인지 확인하십시오.
composer show guzzlehttp/guzzle | grep 'versions'