VYPR
Moderate severityNVD Advisory· Published Mar 26, 2026· Updated Mar 26, 2026

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

CVE-2026-33182

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.

PackageAffected versionsPatched versions
saloonphp/saloonPackagist
< 4.0.04.0.0

Affected products

2
  • Saloon/Saloonllm-fuzzy
    Range: <4.0.0
  • saloonphp/saloonv5
    Range: < 4.0.0

Patches

0

No patches discovered yet.

Vulnerability mechanics

AI mechanics synthesis has not run for this CVE yet.

References

4

News mentions

0

No linked articles in our index yet.