Skip to content

Saloon is vulnerable to SSRF and credential leakage via absolute URL in endpoint overriding base URL

Moderate severity GitHub Reviewed Published Mar 25, 2026 in saloonphp/saloon • Updated Mar 25, 2026

Package

composer saloonphp/saloon (Composer)

Affected versions

< 4.0.0

Patched versions

4.0.0

Description

Impact

Users providing user generated input into the resolveEndpoint method on requests.

Patches

Upgrade to Saloon v4+

Upgrade guide: https://docs.saloon.dev/upgrade/upgrading-from-v3-to-v4

Description

When building the request URL, Saloon combined the connector's base URL with the request endpoint. If the endpoint was a valid absolute URL (e.g. https://attacker.example.com/callback), 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 the next major version) 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.

Credits

Saloon thanks @HuajiHD for finding the issue and recommending solutions and @JonPurvis for applying the fix.

References

@Sammyjo20 Sammyjo20 published to saloonphp/saloon Mar 25, 2026
Published to the GitHub Advisory Database Mar 25, 2026
Reviewed Mar 25, 2026
Last updated Mar 25, 2026

Severity

Moderate

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(7th percentile)

Weaknesses

Insufficiently Protected Credentials

The product transmits or stores authentication credentials, but it uses an insecure method that is susceptible to unauthorized interception and/or retrieval. Learn more on MITRE.

Server-Side Request Forgery (SSRF)

The web server receives a URL or similar request from an upstream component and retrieves the contents of this URL, but it does not sufficiently ensure that the request is being sent to the expected destination. Learn more on MITRE.

CVE ID

CVE-2026-33182

GHSA ID

GHSA-c83f-3xp6-hfcp

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.