Saloon is vulnerable to SSRF and credential leakage via absolute URL in endpoint overriding base URL
Description
Saloon is a PHP library that gives users tools to build API integrations and SDKs. Prior to version 4.0.0, when building the request URL, Saloon combined the connector's base URL with the request endpoint. If the endpoint was a valid absolute URL, the code used that URL as-is and ignored the base URL. The request—and any authentication headers, cookies, or tokens attached by the connector—was then sent to the attacker-controlled host. If the endpoint could be influenced by user input or configuration (e.g. redirect_uri, callback URL), this allowed server-side request forgery (SSRF) and/or credential leakage to a third-party host. The fix in version 4.0.0 is to reject absolute URLs in the endpoint: URLHelper::join() throws InvalidArgumentException when the endpoint is a valid absolute URL, unless explicitly allowed, requiring callers to opt-in to the functionality on a per-connector or per-request basis.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Saloon PHP library prior to v4.0.0 allowed absolute URLs in endpoints to override base URLs, enabling SSRF and credential leakage via user-controlled input.
Vulnerability
Overview
CVE-2026-33182 affects Saloon, a PHP library for building API integrations and SDKs. Prior to version 4.0.0, when constructing a request URL, Saloon's URLHelper::join() method would use an endpoint as-is if it was a valid absolute URL, ignoring the connector's base URL entirely [1][4]. This meant that any authentication headers, cookies, or tokens attached by the connector would be sent to the attacker-controlled host specified in the endpoint.
Exploitation
Prerequisites
An attacker could exploit this vulnerability if the endpoint value could be influenced by user input or configuration, such as through a redirect_uri or callback URL parameter [1][4]. No authentication is required to trigger the bug; the attacker only needs to control the endpoint string passed to resolveEndpoint() on a request. The request would then be sent to the attacker's server, carrying any credentials or tokens that the connector normally attaches.
Impact
Successful exploitation allows server-side request forgery (SSRF) and/or credential leakage to a third-party host [1][4]. An attacker could intercept OAuth tokens, API keys, or session cookies, potentially gaining unauthorized access to the application's backend services or user data.
Mitigation
The issue is fixed in Saloon version 4.0.0, which was released as a security update [2]. The fix makes URLHelper::join() throw an InvalidArgumentException when the endpoint is a valid absolute URL, unless the caller explicitly opts in on a per-connector or per-request basis [1][4]. All users are strongly advised to upgrade to v4.0.0 or later.
AI Insight generated on May 18, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
saloonphp/saloonPackagist | < 4.0.0 | 4.0.0 |
Affected products
2- saloonphp/saloonv5Range: < 4.0.0
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
4- github.com/advisories/GHSA-c83f-3xp6-hfcpghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2026-33182ghsaADVISORY
- docs.saloon.dev/upgrade/upgrading-from-v3-to-v4ghsax_refsource_MISCWEB
- github.com/saloonphp/saloon/security/advisories/GHSA-c83f-3xp6-hfcpghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.