Skip to content

User-Controlled Identity Provider Selection in SAML Authentication

Moderate
ralfbecker published GHSA-pr4x-6fj4-gm4h Jul 6, 2026

Package

egroupware (PHP)

Affected versions

<26.5
<23.1.20260601

Patched versions

26.6.20260616
23.1.20260601

Description

Summary

The login() function at line 130 passes the raw user-supplied value $_REQUEST['idp'] directly to SimpleSAMLphp's requireAuth() with only a regex check that the string starts with 'https://'. No validation is performed against a list of configured, trusted IdP entity IDs. An unauthenticated attacker can supply any HTTPS URL pointing to an IdP they control.

PoC

//api/src/Auth/Saml.php
function login()
	{
		// login (redirects to IdP)
		$as = new SimpleSAML\Auth\Simple(self::$auth_source);
		$as->requireAuth(preg_match('|^https://|', $_REQUEST['idp']) ?
			['saml:idp' => $_REQUEST['idp']] : []);

Impact

An attacker can redirect authentication to a malicious IdP to capture credentials via phishing, or, if the SimpleSAMLphp configuration does not strictly validate IdP metadata, issue forged SAML assertions to authenticate as any user, including administrators.

Remediation

Validate the idp request parameter against a pre-configured whitelist of trusted IdP entity IDs stored in the application's SAML configuration. Reject and log any idp value not explicitly present in the trusted list before calling requireAuth().

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
Required
Scope
Changed
Confidentiality
Low
Integrity
Low
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

CVE ID

CVE-2026-63672

Weaknesses

URL Redirection to Untrusted Site ('Open Redirect')

The web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a redirect. Learn more on MITRE.

Credits