PULSE
LIVE21signals / 24h
FEED
ransomincransom reclama a clintonhealthaccess.org · US · Healthcareransomincransom reclama a Oleoductos del Valle · AR · Energy & Utilitiesransomsafepay reclama a pradotuylaw.com · US · Professional Servicesransomsafepay reclama a naskdoorinc.com · US · Manufacturingransomsafepay reclama a new-point.it · IT · Technologyransomsafepay reclama a simonrack.com · ES · Manufacturingransomsafepay reclama a hanan-hov.co.il · IL · Otherransomanubis reclama a BLACKBURN'S · US · Healthcareransomanubis reclama a Cameron Regional Medical Center · US · Healthcareransomsafepay reclama a azn.co.jp · JP · Retail & E-Commerceransomsafepay reclama a southshorerecycling.com · US · Manufacturingransomsafepay reclama a cpu-ag.com · DE · Manufacturingransomsafepay reclama a multiaqua.com · US · Agriculture and Food Productionransomanubis reclama a Winn-Dixie · US · Retail & E-Commerceransomincransom reclama a clintonhealthaccess.org · US · Healthcareransomincransom reclama a Oleoductos del Valle · AR · Energy & Utilitiesransomsafepay reclama a pradotuylaw.com · US · Professional Servicesransomsafepay reclama a naskdoorinc.com · US · Manufacturingransomsafepay reclama a new-point.it · IT · Technologyransomsafepay reclama a simonrack.com · ES · Manufacturingransomsafepay reclama a hanan-hov.co.il · IL · Otherransomanubis reclama a BLACKBURN'S · US · Healthcareransomanubis reclama a Cameron Regional Medical Center · US · Healthcareransomsafepay reclama a azn.co.jp · JP · Retail & E-Commerceransomsafepay reclama a southshorerecycling.com · US · Manufacturingransomsafepay reclama a cpu-ag.com · DE · Manufacturingransomsafepay reclama a multiaqua.com · US · Agriculture and Food Productionransomanubis reclama a Winn-Dixie · US · Retail & E-Commerce
← All CVEs
CVE WatchAug 3, 2026

CVE-2026-69246

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 h

CVSS

7.2

High

EPSS

KEV

Exploit Today

0-100

Published: Aug 3, 2026 · Last modified: Aug 3, 2026 · CWE-180 · CWE-436 · CWE-918

EPSS · 30d

Not enough EPSS history yet.

Technical description

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() rejects the host as an IP literal, yet libcurl decodes it to 127.0.0.1 and reaches loopback with no DNS lookup while the server receives Host: 127.0.0.%31. An attacker who influences a fetched URI can therefore reach a host the application's checks excluded and read whatever the host exposes of the response. The same divergence moves Guzzle's own decisions onto a spelling the transport does not use: no_proxy selects proxy routing from the literal host, and RedirectMiddleware decides from it whether to strip Authorization and Cookie. Exploitation requires the application to build a request URI from untrusted input and to make a host decision before handing it to Guzzle. This issue is fixed in versions 7.15.2 and 8.0.1.

Official references
Related CVEs
CVECVSSEPSSKEVRExploitTitleMod.
CVE-2026-4833110.0 CRI
Adobe Campaign Classic (ACC) is affected by a Server-Side Request Forgery (SSRF) vulnerability that could result in privilege escalation. Exploitation of this issue does not require user interaction. Scope is changed.4h
CVE-2026-692456.5 MED
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 registered names in the URI grammar rather than address literals, and no numeric rule in any base classifies them, while libcurl decodes the host before resolving and reads them as 192.168.0.1 and 127.0.0.1. A cookie stored for Domain=0x7f000001 is placed in the Cookie header of a request to evil.0x7f000001, disclosing a session identifier or token to a host that is not that address, and a response from evil.0x7f000001 setting Domain=0x7f000001 is accepted into the jar and replayed to the address, so a server answering for the look-alike name can fix a session or set application state. Exploitation requires the application to enable cookie support, address an origin by one of these spellings, and contact a host whose name ends in that spelling. This issue is fixed in versions 7.15.2 and 8.0.1.6h
CVE-2026-187365.0 MED
Shlink contains a server-side request forgery vulnerability that allows authenticated API key holders to cause the server to issue arbitrary HTTP GET requests by supplying a crafted long URL during short URL creation with title auto-resolution enabled. Attackers can submit URLs pointing to public hosts that redirect to internal targets, including loopback addresses, link-local ranges, and cloud metadata endpoints such as 169.254.169.254, to exfiltrate internal service information via the HTML title element returned in the short URL creation response.6h
CVE-2026-186477.3 HIG
A security vulnerability has been detected in jina-ai reader up to 1574bfd380d249c86c82db4dace0d9c8fe17e2b1. This issue affects the function isValidTLD of the file /backend/functions/src/cloud-functions/crawler.ts of the component Crawler/Puppeteer. The manipulation leads to server-side request forgery. Remote exploitation of the attack is possible. The exploit has been disclosed publicly and may be used. This product follows a rolling release approach for continuous delivery, so version details for affected or updated releases are not provided. The vendor was contacted early about this disclosure but did not respond in any way.6h
CVE-2026-69198
ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. From 10.1.1 until 10.2.2, every special-use classification method is built on isInSubnet, which short-circuits to false whenever the address's own subnet mask is shorter than the reference range's mask. That mask comes verbatim from the CIDR suffix on the parsed input, so appending a suffix such as /0 suppresses classification entirely: isLoopback(), isPrivate(), isLinkLocal(), isCGNAT(), isMulticast(), isUnspecified(), isBroadcast(), isULA(), and getType() all report an internal address as unremarkable, while correctForm() and address still return the real internal target. An application that builds a network trust-boundary decision on these checks, for example a filter intended to block Server-Side Request Forgery, or SSRF, may therefore treat an internal target as external and allow the request. The underlying bit comparison is correct, and mask(n) already returns the first n bits of the full parsed address independently of subnetMask; the defect is solely that the containment guard sits in the classification path. This issue is fixed in version 10.2.2.7h
CVE-2026-69192
ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.3.1, Address4 accepts an octet written with a leading zero and decodes it as decimal, while the WHATWG URL host parser, inet_aton, and getaddrinfo all decode a leading zero as octal. The library and the network stack therefore disagree about which host a string names. new Address4('012.0.0.1') reports correctForm() of 12.0.0.1 and isPrivate() of false, but fetch('http://012.0.0.1/') connects to 10.0.0.1. An application that builds a network trust-boundary decision on these checks, for example a filter intended to block Server-Side Request Forgery, or SSRF, will classify an internal target as external and allow the request. The defect is in the parse gate rather than in any one classifier, so every consumer of Address4 inherits it: isPrivate(), isLoopback(), isLinkLocal(), isCGNAT(), isInSubnet(), isHostInSubnet(), and correctForm() are all computed from the mis-decoded octets. This issue is fixed in version 10.3.1.7h