p PatchFirst

PatchFirst · Latest vulnerabilities

guzzlehttp/guzzle vulnerabilities

Vulnerabilities published for guzzlehttp/guzzle in the last 30 days: 0. Listed in the KEV catalogue: 0.

Filter vulnerabilities
Clear filters

Vulnerabilities: 14

  1. CVE-2026-69246

    High · CVSS 7.2EPSS 0.37%Fix available

    Guzzle: Noncanonical host can bypass host-based checks

    Guzzle is an extensible PHP HTTP client. Prior to 7.15.2 and 8.0.1, Guzzle gives a transport the request URI as text and supplies the Host header separately. The cURL handlers set CURLOPT_URL to the URI exactly as written and push that Host into CURLOPT_HTTPHEADER; StreamHandler does the same through fopen(). libcurl then parses the authority itself, percent-decoding it and, on an IDN-capable build, applying IDNA mapping, and uses the result to resolve, connect, name the TLS peer and address a proxy CONNECT, while the supplied Host suppresses the aligned one libcurl would have generated. For a URI host written as 127.0.0.%31, filter_var() rej

    • Update to 7.15.2
    • Update to 8.0.1
    Published Updated
  2. CVE-2026-69245

    Medium · CVSS 6.5EPSS 0.2%Fix available

    Guzzle: Noncanonical cookie domain keeps subdomain scope

    Guzzle is an extensible PHP HTTP client. Prior to 7.15.2 and 8.0.1, SetCookie::matchesDomain() gives every subdomain of a cookie Domain that cookie unless SetCookie::matchesDomain() recognizes the Domain as an IP literal or a numeric host, and the decision comes from the domain's own text, so two spellings a transport reads as an address keep subdomain scope. Hexadecimal and mixed-base forms such as 0x7f000001 and 0177.0.0.0x1 go unrecognized while libcurl 8.21.0 reads both as 127.0.0.1. A percent-escaped Domain keeps that scope on both branches because percent-decoding sits above numeric parsing, so 192.168.0.%31 and 127.0.0.1%2e are registe

    • Update to 7.15.2
    • Update to 8.0.1
    Published Updated
  3. CVE-2026-67354

    High · CVSS 8.2EPSS 0.37%Fix available

    guzzlehttp/guzzle before 7.15.1 URI Fragment Disclosure via Referer

    guzzlehttp/guzzle versions before 7.15.1 contain an information disclosure vulnerability in RedirectMiddleware. When the optional allow_redirects.referer setting is enabled, the middleware copies the URI fragment (the portion after '#') from the referring request into the generated Referer header when following a same-scheme redirect (e.g., HTTPS to HTTPS). An attacker who controls the redirect destination can read this fragment from the incoming Referer header, potentially disclosing one-time login secrets, access tokens, state values, or other sensitive client data to a server never meant to receive it. The referer setting is disabled by de

    • Update to 7.15.1
    Published Updated
  4. CVE-2026-67355

    High · CVSS 8.2EPSS 0.37%Fix available

    guzzlehttp/guzzle before 7.15.1 Host-only Cookie Scope

    guzzlehttp/guzzle versions before 7.15.1 fail to preserve host-only cookie scope, storing the request host in the Domain field instead of marking cookies as host-only. Attackers controlling child hosts can receive host-only cookies intended only for parent hosts, potentially disclosing session identifiers and authorization tokens when the same cookie jar is reused across trust boundaries.

    • Update to 7.15.1
    Published Updated
  5. CVE-2026-67353

    Medium · CVSS 6.9EPSS 0.42%Fix available

    guzzlehttp/guzzle before 7.15.1 Unbounded Cookie Denial of Service

    guzzlehttp/guzzle versions before 7.15.1 contain a denial of service vulnerability in the CookieJar that accepts unlimited Set-Cookie header fields with no size restrictions. Attackers can return many large cookies from a malicious server, causing Guzzle to store excessive data in memory and generate oversized Cookie headers that fail in handlers or destination servers.

    • Update to 7.15.1
    Published Updated
  6. CVE-2026-67339

    Medium · CVSS 6.9EPSS 0.37%Fix available

    guzzlehttp/guzzle before 7.14.2 Proxy-Authorization Header Disclosure

    guzzlehttp/guzzle versions before 7.14.2 fail to properly isolate Proxy-Authorization headers from origin servers in cURL handlers. Attackers can capture proxy credentials through origin server access logs when requests are redirected, bypassed, or sent through SOCKS proxies that Guzzle misclassifies as direct connections.

    • Update to 7.14.2
    Published Updated
  7. CVE-2026-59883

    Medium · CVSS 4.7EPSS 0.17%Fix available

    Guzzle: Cookie Disclosure and Injection via IP-Address Domains

    Guzzle is an extensible PHP HTTP client. Prior to 7.12.3, CookieJar did not restrict cookies scoped to IP-address or bare-numeric Domain values to the exact host that set them, because SetCookie::matchesDomain() applied ordinary suffix matching to domains such as 192.168.0.1, [::1], or 1, allowing cross-host cookie disclosure, cookie injection, or session fixation. This issue is fixed in version 7.12.3.

    • Update to 7.12.3
    Published Updated
  8. CVE-2026-55767

    Medium · CVSS 5.8EPSS 0.21%Fix available

    Guzzle: Dot-Only Cookie Domains Match All Hosts in guzzlehttp/guzzle

    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 inje

    • Update to 7.12.1
    Published Updated
  9. CVE-2026-55568

    Medium · CVSS 5.9EPSS 0.15%Fix available

    Guzzle: Silent HTTPS-Proxy Downgrade to Cleartext

    Guzzle is an extensible PHP HTTP client. Prior to 7.12.1, in certain configurations, traffic expected to be protected by TLS on the hop to the proxy is transmitted in cleartext. Proxy authentication credentials (the Proxy-Authorization header, proxy userinfo in the proxy URL, or CURLOPT_PROXYUSERPWD) are sent without encryption, and the CONNECT target host and port for tunneled HTTPS requests are exposed. The built-in cURL handlers (GuzzleHttp\Handler\CurlHandler and GuzzleHttp\Handler\CurlMultiHandler, used by default whenever the PHP cURL extension is available) accept an https:// proxy. libcurl older than 7.50.2 silently treats an https://

    • Update to 7.12.1
    Published Updated
  10. CVE-2022-31091

    High · CVSS 7.7EPSS 1.53%Fix available

    Change in port should be considered a change in origin in Guzzle

    Guzzle, an extensible PHP HTTP client. `Authorization` and `Cookie` headers on requests are sensitive information. In affected versions on making a request which responds with a redirect to a URI with a different port, if we choose to follow it, we should remove the `Authorization` and `Cookie` headers from the request, before containing. Previously, we would only consider a change in host or scheme. Affected Guzzle 7 users should upgrade to Guzzle 7.4.5 as soon as possible. Affected users using any earlier series of Guzzle should upgrade to Guzzle 6.5.8 or 7.4.5. Note that a partial fix was implemented in Guzzle 7.4.2, where a change in host

    • Update to 6.5.8
    • Update to 7.4.5
    Published Updated
  11. CVE-2022-31090

    High · CVSS 7.7EPSS 1.92%Fix available

    CURLOPT_HTTPAUTH option not cleared on change of origin in Guzzle

    Guzzle, an extensible PHP HTTP client. `Authorization` headers on requests are sensitive information. In affected versions when using our Curl handler, it is possible to use the `CURLOPT_HTTPAUTH` option to specify an `Authorization` header. On making a request which responds with a redirect to a URI with a different origin (change in host, scheme or port), if we choose to follow it, we should remove the `CURLOPT_HTTPAUTH` option before continuing, stopping curl from appending the `Authorization` header to the new request. Affected Guzzle 7 users should upgrade to Guzzle 7.4.5 as soon as possible. Affected users using any earlier series of Gu

    • Update to 6.5.8
    • Update to 7.4.5
    Published Updated
  12. CVE-2022-31042

    High · CVSS 7.5EPSS 1.96%Fix available

    Failure to strip the Cookie header on change in host or HTTP downgrade in Guzzle

    Guzzle is an open source PHP HTTP client. In affected versions the `Cookie` headers on requests are sensitive information. On making a request using the `https` scheme to a server which responds with a redirect to a URI with the `http` scheme, or on making a request to a server which responds with a redirect to a a URI to a different host, we should not forward the `Cookie` header on. Prior to this fix, only cookies that were managed by our cookie middleware would be safely removed, and any `Cookie` header manually added to the initial request would not be stripped. We now always strip it, and allow the cookie middleware to re-add any cookies

    • Update to 6.5.7
    • Update to 7.4.4
    Published Updated
  13. CVE-2022-29248

    High · CVSS 8EPSS 1.36%Fix available

    Cross-domain cookie leakage in Guzzle

    Guzzle is a PHP HTTP client. Guzzle prior to versions 6.5.6 and 7.4.3 contains a vulnerability with the cookie middleware. The vulnerability is that it is not checked if the cookie domain equals the domain of the server which sets the cookie via the Set-Cookie header, allowing a malicious server to set cookies for unrelated domains. The cookie middleware is disabled by default, so most library consumers will not be affected by this issue. Only those who manually add the cookie middleware to the handler stack or construct the client with ['cookies' => true] are affected. Moreover, those who do not use the same Guzzle client to call multiple do

    • Update to 6.5.6
    • Update to 7.4.3
    Published Updated
  14. CVE-2016-5385

    High · CVSS 8.1EPSS 50.43%Fix available

    CVE-2016-5385

    PHP through 7.0.8 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect applications from the presence of untrusted client data in the HTTP_PROXY environment variable, which might allow remote attackers to redirect an application's outbound HTTP traffic to an arbitrary proxy server via a crafted Proxy header in an HTTP request, as demonstrated by (1) an application that makes a getenv('HTTP_PROXY') call or (2) a CGI configuration of PHP, aka an "httpoxy" issue.

    • Update to 4.2.4
    • Update to 5.3.1
    • Update to 6.2.1
    Published Updated

Check your server

Check your installed stack and versions against the current vulnerability feeds.

Check your server →