diff --git a/modules/multiauth/lib/Auth/Source/MultiAuth.php b/modules/multiauth/lib/Auth/Source/MultiAuth.php index f3acc9016a432c44f7ab9e7c7daac5d6e20a1966..07c14810505c55990a1e3a0eb5ae1bcd4b0fb856 100644 --- a/modules/multiauth/lib/Auth/Source/MultiAuth.php +++ b/modules/multiauth/lib/Auth/Source/MultiAuth.php @@ -143,7 +143,13 @@ class sspmod_multiauth_Auth_Source_MultiAuth extends SimpleSAML_Auth_Source { assert('is_array($state)'); $as = SimpleSAML_Auth_Source::getById($authId); - if ($as === NULL) { + $valid_sources = array_map( + function($src) { + return $src['source']; + }, + $state[self::SOURCESID] + ); + if ($as === NULL || !in_array($authId, $valid_sources)) { throw new Exception('Invalid authentication source: ' . $authId); }