Cyber Resilience

CVE-2026-33182

SSRF in Saloon ≤ 4.0.0

Published
26 March 2026
Modified
30 March 2026
Patch / advisory
CVSS Score v4 6.6
Click a component to see what it means
Raw vectorCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:U/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
EPSS Score 0.0042 35th percentile
Risk Priority 40 floored blend · peak EPSS

CVSS and EPSS are reproduced from their sources (NVD, FIRST EPSS). Risk Priority is our own derived reading, not an NVD score.

Summary

CVE-2026-33182 is a medium-severity Insufficiently Protected Credentials (CWE-522) vulnerability in Saloon Saloon. Its CVSS base score is 6.6 (Medium).

Operationally, exploitation aligns with the MITRE ATT&CK technique Unsecured Credentials (T1552); ranked at the 35th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.

The strongest mitigations our analysis identified map to AC-4 (Information Flow Enforcement) and SC-28 (Protection of Information at Rest) — see the control section below for these in your framework.

Deeper analysis AI-assisted summary

Synthesised by an AI model from the NVD description and linked references — a reading aid, not an authoritative source.

CVE-2026-33182 is a server-side request forgery (SSRF) vulnerability in Saloon, a PHP library used for building API integrations and SDKs. In versions prior to 4.0.0, Saloon's URL construction logic combines the connector's base URL with the request endpoint. However, if the endpoint is a valid absolute URL, the library uses it as-is, bypassing the base URL and sending the request—along with any attached authentication headers, cookies, or tokens—to the attacker-controlled host. This issue arises when the endpoint can be influenced by user input or configuration, such as redirect_uri or callback URLs, and is associated with CWE-522 (Insufficiently Protected Credentials) and CWE-918 (SSRF).

The vulnerability can be exploited by unauthenticated attackers over the network with low complexity and no user interaction required, as indicated by its CVSS v3.1 base score of 7.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N). An attacker who can control or inject an absolute URL into the endpoint parameter—via user-supplied input, configuration files, or dynamic endpoints—can trick the application into making requests to arbitrary hosts. This enables SSRF to access internal services and potential leakage of sensitive credentials to third-party hosts under attacker control.

Mitigation is addressed in Saloon version 4.0.0, where the URLHelper::join() method now rejects absolute URLs in the endpoint by throwing an InvalidArgumentException, unless explicitly allowed via opt-in on a per-connector or per-request basis. Security practitioners should upgrade to 4.0.0 or later and review integrations for endpoint sources. Details are available in the Saloon upgrade guide from v3 to v4 at https://docs.saloon.dev/upgrade/upgrading-from-v3-to-v4 and the GitHub security advisory at https://github.com/saloonphp/saloon/security/advisories/GHSA-c83f-3xp6-hfcp.

OWASP Top 10 for Web (2025)

EU & UK References

Vulnerability Data

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…

more

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.

CWE(s)

Related Threats

MITRE ATT&CK Enterprise Techniques

T1552 Unsecured Credentials Credential Access
Adversaries may search compromised systems to find and obtain insecurely stored credentials.
T1552.001 Credentials In Files Credential Access
Adversaries may search local file systems and remote file shares for files containing insecurely stored credentials.
T1021 Remote Services Lateral Movement
Adversaries may use [Valid Accounts](https://attack.
T1078 Valid Accounts Stealth
Adversaries may obtain and abuse credentials of existing accounts as a means of gaining Initial Access, Persistence, Privilege Escalation, or Defense Evasion.
T1114.002 Remote Email Collection Collection
Adversaries may target an Exchange server, Office 365, or Google Workspace to collect sensitive information.
T1550.003 Pass the Ticket Lateral Movement
Adversaries may “pass the ticket” using stolen Kerberos tickets to move laterally within an environment, bypassing normal system access controls.
Derived from this CVE’s CWE(s) via the direct CWE→ATT&CK cross-walk.

CVEs Like This One

CVE-2026-33183Same product: Saloon Saloon
CVE-2026-33942Same product: Saloon Saloon
CVE-2026-47660Shared CWE-522, CWE-918
CVE-2026-47662Shared CWE-522, CWE-918
CVE-2023-44158Shared CWE-522
CVE-2023-36266Shared CWE-522
CVE-2025-2772Shared CWE-522
CVE-2023-38548Shared CWE-522
CVE-2023-32338Shared CWE-522
CVE-2025-61776Shared CWE-522

Affected Assets

saloon
saloon
≤ 4.0.0

Mitigating Controls

Control response

Prevent
Stop it (NIST 800-53)

—

Detect
Catch it (NIST detect / respond)

—

Harden
Shrink the surface (DISA STIG)
  • 1 hardening rule · 1 OS baseline
Validate
Prove the fix (OWASP ASVS)
  • V11.3.3
  • V1.3.6
  • V1.5.3
  • V5.3.2

Mitigating Controls (NIST 800-53 r5) AI

Protection of information at rest requires encryption or equivalent safeguards for stored credentials.

Transmission confidentiality and integrity enforcement stops credentials from being sent in plaintext or without protection.

Information flow enforcement can restrict which destinations the server is allowed to contact on behalf of users.

Input validation directly stops untrusted URLs from being accepted and fetched without destination checks.

Authenticator management requires secure generation, storage, and distribution of credentials, directly stopping insecure methods.

Boundary protection limits the network reach of server-initiated requests even if SSRF occurs.

Mitigating Controls (NIST CSF 2.0) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→CSF cross-walk (authority under review) — links open the control.

PR.DS-01 full match
prevents

Encrypting data-at-rest fully prevents insecure credential storage while only partially satisfying the broader data-protection outcome.

PR.DS-02 full match
prevents

Encrypting data-in-transit fully prevents interception of credentials in motion while only partially satisfying the broader data-protection outcome.

PR.AA-01 mostly match
prevents

Credential management practices directly reduce insecure storage/transmission but do not guarantee encryption or transport protection.

PR.AA-04 mostly match
prevents

Protecting identity assertions covers conveyance of credentials but is narrower than full credential lifecycle protection.

PR.PS-06 mostly match
prevents

Secure development practices directly include input validation and destination allow-listing that prevent SSRF.

DE.CM-09 partial match
prevents

Runtime monitoring of web applications and services can detect anomalous outbound requests indicative of SSRF.

Mitigating Controls (ISO/IEC 27001:2022 Annex A) AI

Derived directly from the weakness types (CWEs) cited in the NVD entry via our AI-authored CWE→ISO cross-walk (authority under review) — links open the control.

prevents

Requiring protected storage, transmission, and non-display of passwords prevents credentials from being stored or sent in clear text where they can be harvested by unauthorized actors.

prevents

Protecting secret and private keys against disclosure and unauthorized use decreases the exposure of credentials that are stored or transmitted in recoverable form.

prevents

Forbidding clear-text transmission and display of passwords, plus the use of stronger alternatives to passwords, prevents credentials from being obtained or reused by attackers.

prevents

Acceptable-use expectations that cover protection of credentials and information assets throughout their lifecycle discourage practices that expose or mishandle authentication material.

prevents

Operational threat data describing SSRF campaigns can be used to tighten outbound-request allow-lists and detection rules before attackers exploit them.

prevents

Contractual clauses that survive termination help ensure that credentials and other secrets are not retained or misused after employment ends.

References