Completed
Pull Request — master (#1132)
by Tim
15:36
created

lib/SimpleSAML/Auth/Source.php (4 issues)

1
<?php
2
3
declare(strict_types=1);
4
5
namespace SimpleSAML\Auth;
6
7
use SimpleSAML\Configuration;
8
use SimpleSAML\Error;
9
use SimpleSAML\Logger;
10
use SimpleSAML\Module;
11
use SimpleSAML\Session;
12
use SimpleSAML\Utils;
13
14
/**
15
 * This class defines a base class for authentication source.
16
 *
17
 * An authentication source is any system which somehow authenticate the user.
18
 *
19
 * @author Olav Morken, UNINETT AS.
20
 * @package SimpleSAMLphp
21
 */
22
23
abstract class Source
24
{
25
    /**
26
     * The authentication source identifier. This identifier can be used to look up this object, for example when
27
     * returning from a login form.
28
     *
29
     * @var string
30
     */
31
    protected $authId;
32
33
34
    /**
35
     * Constructor for an authentication source.
36
     *
37
     * Any authentication source which implements its own constructor must call this
38
     * constructor first.
39
     *
40
     * @param array $info Information about this authentication source.
41
     * @param array &$config Configuration for this authentication source.
42
     */
43
    public function __construct($info, &$config)
44
    {
45
        assert(is_array($info));
46
        assert(is_array($config));
47
48
        assert(array_key_exists('AuthId', $info));
49
        $this->authId = $info['AuthId'];
50
    }
51
52
53
    /**
54
     * Get sources of a specific type.
55
     *
56
     * @param string $type The type of the authentication source.
57
     *
58
     * @return Source[]  Array of \SimpleSAML\Auth\Source objects of the specified type.
59
     * @throws \Exception If the authentication source is invalid.
60
     */
61
    public static function getSourcesOfType($type)
62
    {
63
        assert(is_string($type));
64
65
        $config = Configuration::getConfig('authsources.php');
66
67
        $ret = [];
68
69
        $sources = $config->getOptions();
70
        foreach ($sources as $id) {
71
            $source = $config->getArray($id);
72
73
            self::validateSource($source, $id);
74
75
            if ($source[0] !== $type) {
76
                continue;
77
            }
78
79
            $ret[] = self::parseAuthSource($id, $source);
80
        }
81
82
        return $ret;
83
    }
84
85
86
    /**
87
     * Retrieve the ID of this authentication source.
88
     *
89
     * @return string The ID of this authentication source.
90
     */
91
    public function getAuthId()
92
    {
93
        return $this->authId;
94
    }
95
96
97
    /**
98
     * Process a request.
99
     *
100
     * If an authentication source returns from this function, it is assumed to have
101
     * authenticated the user, and should have set elements in $state with the attributes
102
     * of the user.
103
     *
104
     * If the authentication process requires additional steps which make it impossible to
105
     * complete before returning from this function, the authentication source should
106
     * save the state, and at a later stage, load the state, update it with the authentication
107
     * information about the user, and call completeAuth with the state array.
108
     *
109
     * @param array &$state Information about the current authentication.
110
     * @return void
111
     */
112
    abstract public function authenticate(&$state);
113
114
115
    /**
116
     * Reauthenticate an user.
117
     *
118
     * This function is called by the IdP to give the authentication source a chance to
119
     * interact with the user even in the case when the user is already authenticated.
120
     *
121
     * @param array &$state Information about the current authentication.
122
     * @return void
123
     */
124
    public function reauthenticate(array &$state)
125
    {
126
        assert(isset($state['ReturnCallback']));
127
128
        // the default implementation just copies over the previous authentication data
129
        $session = Session::getSessionFromRequest();
130
        $data = $session->getAuthState($this->authId);
131
        if ($data === null) {
132
            throw new Error\NoState();
133
        }
134
135
        foreach ($data as $k => $v) {
136
            $state[$k] = $v;
137
        }
138
    }
139
140
141
    /**
142
     * Complete authentication.
143
     *
144
     * This function should be called if authentication has completed. It will never return,
145
     * except in the case of exceptions. Exceptions thrown from this page should not be caught,
146
     * but should instead be passed to the top-level exception handler.
147
     *
148
     * @param array &$state Information about the current authentication.
149
     * @return void
150
     */
151
    public static function completeAuth(&$state)
152
    {
153
        assert(is_array($state));
154
        assert(array_key_exists('LoginCompletedHandler', $state));
155
156
        State::deleteState($state);
157
158
        $func = $state['LoginCompletedHandler'];
159
        assert(is_callable($func));
160
161
        call_user_func($func, $state);
0 ignored issues
show
Security Code Execution introduced by
$func can contain request data and is used in code execution context(s) leading to a potential security vulnerability.

13 paths for user data to reach this point

  1. Path: Session::setData() is called in lib/SimpleSAML/Auth/State.php on line 220
  1. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  2. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  3. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  4. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  5. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  6. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  7. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  8. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  9. SimpleSAML\Auth\State::loadState($stateId, 'core:short_sso_interval') is assigned to $state
    in modules/core/lib/Controller/Exception.php on line 151
  10. ProcessingChain::resumeProcessing() is called
    in modules/core/lib/Controller/Exception.php on line 156
  11. Enters via parameter $state
    in lib/SimpleSAML/Auth/ProcessingChain.php on line 239
  12. State::saveState() is called
    in lib/SimpleSAML/Auth/ProcessingChain.php on line 266
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  14. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  15. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  16. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  17. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  18. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  19. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  20. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  21. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  22. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  23. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  24. $attributes is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 328
  25. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  26. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  27. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  2. Path: Read from $_REQUEST, and (string)$_REQUEST['RelayState'] is assigned to $relayState in modules/core/www/idp/logout-iframe-post.php on line 16
  1. Read from $_REQUEST, and (string)$_REQUEST['RelayState'] is assigned to $relayState
    in modules/core/www/idp/logout-iframe-post.php on line 16
  2. Message::setRelayState() is called
    in modules/core/www/idp/logout-iframe-post.php on line 58
  3. Enters via parameter $relayState
    in vendor/simplesamlphp/saml2/src/SAML2/Message.php on line 439
  4. $relayState is assigned to property LogoutRequest::$relayState
    in vendor/simplesamlphp/saml2/src/SAML2/Message.php on line 443
  5. Read from property LogoutRequest::$relayState, and $this->relayState is returned
    in vendor/simplesamlphp/saml2/src/SAML2/Message.php on line 429
  6. array('Responder' => array('\SimpleSAML\Module\saml\IdP\SAML2', 'sendLogoutResponse'), 'saml:SPEntityId' => $spEntityId, 'saml:RelayState' => $message->getRelayState(), 'saml:RequestId' => $message->getId()) is assigned to $state
    in modules/saml/lib/IdP/SAML2.php on line 663
  7. IdP::handleLogoutRequest() is called
    in modules/saml/lib/IdP/SAML2.php on line 671
  8. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 484
  9. $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 489
  10. IFrameLogoutHandler::startLogout() is called
    in lib/SimpleSAML/IdP.php on line 506
  11. Enters via parameter $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 47
  12. State::saveState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 76
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  14. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  15. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  16. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  17. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  18. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  19. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  20. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  21. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  22. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  23. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  24. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  25. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  26. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  3. Path: Session::setData() is called in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  1. Session::setData() is called
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  2. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  3. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  4. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  5. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  6. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  7. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  8. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  9. SimpleSAML\Auth\State::loadState($authStateId, SimpleSAML\Module\multiauth\Auth\Source\MultiAuth::STAGEID) is assigned to $state
    in modules/multiauth/www/selectsource.php on line 20
  10. $state['multiauth:preselect'] is assigned to $source
    in modules/multiauth/www/selectsource.php on line 49
  11. MultiAuth::delegateAuthentication() is called
    in modules/multiauth/www/selectsource.php on line 50
  12. Enters via parameter $authId
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 186
  13. Session::setData() is called
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  14. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  15. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  16. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  17. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  18. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  19. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  20. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  21. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  22. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  23. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  24. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  4. Path: Read from $_GET, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called in www/saml2/idp/initSLO.php on line 15
  1. Read from $_GET, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called
    in www/saml2/idp/initSLO.php on line 15
  2. Enters via parameter $url
    in lib/SimpleSAML/IdP.php on line 548
  3. array('Responder' => array('\SimpleSAML\IdP', 'finishLogoutRedirect'), 'core:Logout:URL' => $url) is assigned to $state
    in lib/SimpleSAML/IdP.php on line 552
  4. IdP::handleLogoutRequest() is called
    in lib/SimpleSAML/IdP.php on line 557
  5. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 484
  6. State::saveState() is called
    in lib/SimpleSAML/IdP.php on line 499
  7. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  8. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  9. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  10. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  11. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  12. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  13. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  14. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  15. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  16. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  17. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  18. $attributes is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 328
  19. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  20. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  21. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  5. Path: Read tainted data from array, and $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI'] is returned in lib/SimpleSAML/Utils/HTTP.php on line 856
  1. Read tainted data from array, and $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI'] is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 856
  2. SimpleSAML\Utils\HTTP::getSelfURL() is assigned to $url
    in lib/SimpleSAML/Error/NotFound.php on line 36
  3. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  4. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  5. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  6. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  7. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpassorg.php on line 112
  8. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpassorg.php on line 114
  9. State::saveState() is called
    in modules/core/www/loginuserpassorg.php on line 119
  10. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  11. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  12. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  13. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  14. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  15. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  16. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  17. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  18. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  19. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  20. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  21. $attributes is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 328
  22. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  23. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  24. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  6. Path: Read tainted data from array, and $_SERVER['HTTP_HOST'] is assigned to $current in lib/SimpleSAML/Utils/HTTP.php on line 64
  1. Read tainted data from array, and $_SERVER['HTTP_HOST'] is assigned to $current
    in lib/SimpleSAML/Utils/HTTP.php on line 64
  2. $current is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 80
  3. self::getServerHost() is assigned to $hostname
    in lib/SimpleSAML/Utils/HTTP.php on line 853
  4. $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI'] is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 856
  5. SimpleSAML\Utils\HTTP::getSelfURL() is assigned to $url
    in lib/SimpleSAML/Error/NotFound.php on line 36
  6. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  7. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  8. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  9. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  10. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpassorg.php on line 112
  11. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpassorg.php on line 114
  12. State::saveState() is called
    in modules/core/www/loginuserpassorg.php on line 119
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  14. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  15. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  16. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  17. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  18. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  19. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  20. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  21. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  22. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  23. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  24. $attributes is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 328
  25. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  26. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  27. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  7. Path: Read from $_SERVER in lib/SimpleSAML/Utils/HTTP.php on line 119
  1. Read from $_SERVER
    in lib/SimpleSAML/Utils/HTTP.php on line 119
  2. State::saveState() is called
    in modules/core/lib/Auth/UserPassOrgBase.php on line 225
  3. Enters via parameter $stage
    in lib/SimpleSAML/Auth/State.php on line 205
  4. $stage is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 215
  5. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  6. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  7. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  8. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  9. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  10. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  11. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  12. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  13. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  14. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  15. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  16. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  17. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  8. Path: Read from $_REQUEST, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called in www/saml2/idp/SingleLogoutService.php on line 20
  1. Read from $_REQUEST, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called
    in www/saml2/idp/SingleLogoutService.php on line 20
  2. Enters via parameter $url
    in lib/SimpleSAML/IdP.php on line 548
  3. array('Responder' => array('\SimpleSAML\IdP', 'finishLogoutRedirect'), 'core:Logout:URL' => $url) is assigned to $state
    in lib/SimpleSAML/IdP.php on line 552
  4. IdP::handleLogoutRequest() is called
    in lib/SimpleSAML/IdP.php on line 557
  5. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 484
  6. IFrameLogoutHandler::startLogout() is called
    in lib/SimpleSAML/IdP.php on line 506
  7. Enters via parameter $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 47
  8. State::saveState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 76
  9. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  10. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  11. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  12. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  13. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  14. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  15. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  16. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  17. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  18. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  19. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  20. $attributes is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 328
  21. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  22. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  23. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  9. Path: Read tainted data from array, and Data is passed through substr(), and substr($_SERVER['PATH_INFO'], 1) is assigned to $sourceId in modules/saml/www/sp/saml2-acs.php on line 11
  1. Read tainted data from array, and Data is passed through substr(), and substr($_SERVER['PATH_INFO'], 1) is assigned to $sourceId
    in modules/saml/www/sp/saml2-acs.php on line 11
  2. array('saml:sp:isUnsolicited' => true, 'saml:sp:AuthId' => $sourceId, 'saml:sp:RelayState' => SimpleSAML\Utils\HTTP::checkURLAllowed($spMetadata->getString('RelayState', $response->getRelayState()))) is assigned to $state
    in modules/saml/www/sp/saml2-acs.php on line 126
  3. State::throwException() is called
    in modules/saml/www/sp/saml2-acs.php on line 149
  4. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 356
  5. State::saveState() is called
    in lib/SimpleSAML/Auth/State.php on line 363
  6. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  7. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  8. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  9. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  10. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  11. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  12. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  13. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  14. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  15. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  16. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  17. $attributes is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 328
  18. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  19. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  20. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  10. Path: Read from $_REQUEST, and (string)$_REQUEST['idp'] is assigned to $idp in modules/core/www/idp/logout-iframe-post.php on line 6
  1. Read from $_REQUEST, and (string)$_REQUEST['idp'] is assigned to $idp
    in modules/core/www/idp/logout-iframe-post.php on line 6
  2. IdP::getById() is called
    in modules/core/www/idp/logout-iframe-post.php on line 7
  3. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 131
  4. IdP::__construct() is called
    in lib/SimpleSAML/IdP.php on line 139
  5. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 69
  6. $id is assigned to property IdP::$id
    in lib/SimpleSAML/IdP.php on line 71
  7. Read from property IdP::$id, and $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 489
  8. IFrameLogoutHandler::startLogout() is called
    in lib/SimpleSAML/IdP.php on line 506
  9. Enters via parameter $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 47
  10. State::saveState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 76
  11. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  12. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  13. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  14. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  15. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  16. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  17. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  18. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  19. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  20. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  21. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  22. $attributes is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 328
  23. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  24. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  25. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  11. Path: Read tainted data from array, and Data is passed through substr(), and self::getBaseURL() . $url_path . substr($_SERVER['REQUEST_URI'], $uri_pos + strlen($url_path)) is returned in lib/SimpleSAML/Utils/HTTP.php on line 859
  1. Read tainted data from array, and Data is passed through substr(), and self::getBaseURL() . $url_path . substr($_SERVER['REQUEST_URI'], $uri_pos + strlen($url_path)) is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 859
  2. SimpleSAML\Utils\HTTP::getSelfURL() is assigned to $url
    in lib/SimpleSAML/Error/NotFound.php on line 36
  3. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  4. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  5. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  6. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  7. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpass.php on line 87
  8. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpass.php on line 89
  9. State::saveState() is called
    in modules/core/www/loginuserpass.php on line 93
  10. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  11. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  12. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  13. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  14. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  15. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  16. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  17. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  18. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  19. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  20. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  21. $attributes is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 328
  22. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  23. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  24. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  12. Path: ParameterBag::get() returns request data in vendor/symfony/http-foundation/ParameterBag.php on line 82
  1. ParameterBag::get() returns request data
    in vendor/symfony/http-foundation/ParameterBag.php on line 82
  2. $request->server->get('PATH_INFO') is assigned to $url
    in lib/SimpleSAML/Module.php on line 138
  3. Data is passed through substr(), and substr($url, 1) is assigned to $module
    in lib/SimpleSAML/Module.php on line 149
  4. NotFound::__construct() is called
    in lib/SimpleSAML/Module.php on line 157
  5. Enters via parameter $reason
    in lib/SimpleSAML/Error/NotFound.php on line 32
  6. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  7. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  8. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  9. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  10. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpass.php on line 87
  11. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpass.php on line 89
  12. State::saveState() is called
    in modules/core/www/loginuserpass.php on line 93
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  14. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  15. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  16. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  17. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  18. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  19. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  20. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  21. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  22. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  23. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  24. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  25. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  26. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158
  13. Path: ConfigurationError::__construct() is called in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 64
  1. ConfigurationError::__construct() is called
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 64
  2. Enters via parameter $reason
    in lib/SimpleSAML/Error/ConfigurationError.php on line 38
  3. $reason is assigned to property ConfigurationError::$reason
    in lib/SimpleSAML/Error/ConfigurationError.php on line 52
  4. Read from property ConfigurationError::$reason, and $this->reason is returned
    in lib/SimpleSAML/Error/ConfigurationError.php on line 66
  5. $exception->getReason() is assigned to $reason
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 78
  6. CriticalConfigurationError::__construct() is called
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 83
  7. Enters via parameter $reason
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 52
  8. ConfigurationError::__construct() is called
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 64
  9. Enters via parameter $reason
    in lib/SimpleSAML/Error/ConfigurationError.php on line 38
  10. $reason is assigned to $params
    in lib/SimpleSAML/Error/ConfigurationError.php on line 49
  11. Error::__construct() is called
    in lib/SimpleSAML/Error/ConfigurationError.php on line 54
  12. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  13. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  14. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  15. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpass.php on line 87
  16. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpass.php on line 89
  17. State::saveState() is called
    in modules/core/www/loginuserpass.php on line 93
  18. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  19. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  20. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  21. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  22. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  23. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  24. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  25. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  26. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  27. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  28. SimpleSAML\Auth\State::loadState($authStateId, self::STAGEID) is assigned to $state
    in modules/core/lib/Auth/UserPassBase.php on line 300
  29. Source::completeAuth() is called
    in modules/core/lib/Auth/UserPassBase.php on line 331
  30. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 151
  31. $state['LoginCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 158

General Strategies to prevent injection

In general, it is advisable to prevent any user-data to reach this point. This can be done by white-listing certain values:

if ( ! in_array($value, array('this-is-allowed', 'and-this-too'), true)) {
    throw new \InvalidArgumentException('This input is not allowed.');
}

For numeric data, we recommend to explicitly cast the data:

$sanitized = (integer) $tainted;
Loading history...
162
        assert(false);
163
    }
164
165
166
    /**
167
     * Start authentication.
168
     *
169
     * This method never returns.
170
     *
171
     * @param string|array $return The URL or function we should direct the user to after authentication. If using a
172
     * URL obtained from user input, please make sure to check it by calling \SimpleSAML\Utils\HTTP::checkURLAllowed().
173
     * @param string|null $errorURL The URL we should direct the user to after failed authentication. Can be null, in
174
     * which case a standard error page will be shown. If using a URL obtained from user input, please make sure to
175
     * check it by calling \SimpleSAML\Utils\HTTP::checkURLAllowed().
176
     * @param array $params Extra information about the login. Different authentication requestors may provide different
177
     * information. Optional, will default to an empty array.
178
     * @return void
179
     */
180
    public function initLogin($return, $errorURL = null, array $params = [])
181
    {
182
        assert(is_string($return) || is_array($return));
183
        assert(is_string($errorURL) || $errorURL === null);
184
185
        $state = array_merge($params, [
186
            '\SimpleSAML\Auth\DefaultAuth.id' => $this->authId, // TODO: remove in 2.0
187
            '\SimpleSAML\Auth\Source.id' => $this->authId,
188
            '\SimpleSAML\Auth\DefaultAuth.Return' => $return, // TODO: remove in 2.0
189
            '\SimpleSAML\Auth\Source.Return' => $return,
190
            '\SimpleSAML\Auth\DefaultAuth.ErrorURL' => $errorURL, // TODO: remove in 2.0
191
            '\SimpleSAML\Auth\Source.ErrorURL' => $errorURL,
192
            'LoginCompletedHandler' => [get_class(), 'loginCompleted'],
193
            'LogoutCallback' => [get_class(), 'logoutCallback'],
194
            'LogoutCallbackState' => [
195
                '\SimpleSAML\Auth\DefaultAuth.logoutSource' => $this->authId, // TODO: remove in 2.0
196
                '\SimpleSAML\Auth\Source.logoutSource' => $this->authId,
197
            ],
198
        ]);
199
200
        if (is_string($return)) {
201
            $state['\SimpleSAML\Auth\DefaultAuth.ReturnURL'] = $return; // TODO: remove in 2.0
202
            $state['\SimpleSAML\Auth\Source.ReturnURL'] = $return;
203
        }
204
205
        if ($errorURL !== null) {
206
            $state[State::EXCEPTION_HANDLER_URL] = $errorURL;
207
        }
208
209
        try {
210
            $this->authenticate($state);
211
        } catch (Error\Exception $e) {
212
            State::throwException($state, $e);
213
        } catch (\Exception $e) {
214
            $e = new Error\UnserializableException($e);
215
            State::throwException($state, $e);
216
        }
217
        self::loginCompleted($state);
218
    }
219
220
221
    /**
222
     * Called when a login operation has finished.
223
     *
224
     * This method never returns.
225
     *
226
     * @param array $state The state after the login has completed.
227
     * @return void
228
     */
229
    public static function loginCompleted($state)
230
    {
231
        assert(is_array($state));
232
        assert(array_key_exists('\SimpleSAML\Auth\Source.Return', $state));
233
        assert(array_key_exists('\SimpleSAML\Auth\Source.id', $state));
234
        assert(array_key_exists('Attributes', $state));
235
        assert(!array_key_exists('LogoutState', $state) || is_array($state['LogoutState']));
236
237
        $return = $state['\SimpleSAML\Auth\Source.Return'];
238
239
        // save session state
240
        $session = Session::getSessionFromRequest();
241
        $authId = $state['\SimpleSAML\Auth\Source.id'];
242
        $session->doLogin($authId, State::getPersistentAuthData($state));
243
244
        if (is_string($return)) {
245
            // redirect...
246
            Utils\HTTP::redirectTrustedURL($return);
247
        } else {
248
            call_user_func($return, $state);
0 ignored issues
show
Security Code Execution introduced by
$return can contain request data and is used in code execution context(s) leading to a potential security vulnerability.

15 paths for user data to reach this point

  1. Path: Read tainted data from array, and $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI'] is returned in lib/SimpleSAML/Utils/HTTP.php on line 856
  1. Read tainted data from array, and $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI'] is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 856
  2. self::getSelfURL() is assigned to $url
    in lib/SimpleSAML/Utils/HTTP.php on line 894
  3. $url is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 897
  4. Data is passed through addURLParameters(), and SimpleSAML\Utils\HTTP::addURLParameters(SimpleSAML\Utils\HTTP::getSelfURLNoQuery(), $sessionLostParams) is assigned to $sessionLostURL
    in modules/saml/lib/IdP/SAML2.php on line 462
  5. array('Responder' => array('\SimpleSAML\Module\saml\IdP\SAML2', 'sendResponse'), SimpleSAML\Auth\State::EXCEPTION_HANDLER_FUNC => array('\SimpleSAML\Module\saml\IdP\SAML2', 'handleAuthError'), SimpleSAML\Auth\State::RESTART => $sessionLostURL, 'SPMetadata' => $spMetadata->toArray(), 'saml:RelayState' => $relayState, 'saml:RequestId' => $requestId, 'saml:IDPList' => $IDPList, 'saml:ProxyCount' => $ProxyCount, 'saml:RequesterID' => $RequesterID, 'ForceAuthn' => $forceAuthn, 'isPassive' => $isPassive, 'saml:ConsumerURL' => $acsEndpoint['Location'], 'saml:Binding' => $acsEndpoint['Binding'], 'saml:NameIDFormat' => $nameIDFormat, 'saml:AllowCreate' => $allowCreate, 'saml:Extensions' => $extensions, 'saml:AuthnRequestReceivedAt' => microtime(true), 'saml:RequestedAuthnContext' => $authnContext) is assigned to $state
    in modules/saml/lib/IdP/SAML2.php on line 467
  6. IdP::handleAuthenticationRequest() is called
    in modules/saml/lib/IdP/SAML2.php on line 492
  7. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 387
  8. $spEntityId is assigned to $state
    in lib/SimpleSAML/IdP.php on line 400
  9. IdP::authenticate() is called
    in lib/SimpleSAML/IdP.php on line 415
  10. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 351
  11. Simple::login() is called
    in lib/SimpleSAML/IdP.php on line 357
  12. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  13. (string)$params['ReturnTo'] is assigned to $returnTo
    in lib/SimpleSAML/Auth/Simple.php on line 139
  14. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  15. Enters via parameter $return
    in lib/SimpleSAML/Auth/Source.php on line 180
  16. $return is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 202
  17. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  18. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  19. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  2. Path: IdP::__construct() is called in lib/SimpleSAML/IdP.php on line 139
  1. IdP::__construct() is called
    in lib/SimpleSAML/IdP.php on line 139
  2. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 69
  3. $id is assigned to property IdP::$id
    in lib/SimpleSAML/IdP.php on line 71
  4. Read from property IdP::$id, and $this->id is assigned to $association
    in lib/SimpleSAML/IdP.php on line 225
  5. Session::addAssociation() is called
    in lib/SimpleSAML/IdP.php on line 228
  6. Enters via parameter $association
    in lib/SimpleSAML/Session.php on line 1052
  7. $association is assigned to property Session::$associations
    in lib/SimpleSAML/Session.php on line 1066
  8. Read from property Session::$associations, and $this->associations[$idp] is returned
    in lib/SimpleSAML/Session.php on line 1103
  9. $session->getAssociations($this->associationGroup) is returned
    in lib/SimpleSAML/IdP.php on line 240
  10. $this->idp->getAssociations() is assigned to $associations
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 51
  11. $associations is assigned to $association
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 57
  12. IdP::getByState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 58
  13. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 152
  14. IdP::getById() is called
    in lib/SimpleSAML/IdP.php on line 156
  15. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 131
  16. IdP::__construct() is called
    in lib/SimpleSAML/IdP.php on line 139
  17. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 69
  18. $id is assigned to property IdP::$id
    in lib/SimpleSAML/IdP.php on line 71
  19. Read from property IdP::$id, and $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 391
  20. $spEntityId is assigned to $state
    in lib/SimpleSAML/IdP.php on line 400
  21. IdP::authenticate() is called
    in lib/SimpleSAML/IdP.php on line 415
  22. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 351
  23. Simple::login() is called
    in lib/SimpleSAML/IdP.php on line 357
  24. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  25. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  26. Enters via parameter $params
    in lib/SimpleSAML/Auth/Source.php on line 180
  27. Data is passed through array_merge(), and array_merge($params, array('\SimpleSAML\Auth\DefaultAuth.id' => $this->authId, '\SimpleSAML\Auth\Source.id' => $this->authId, '\SimpleSAML\Auth\DefaultAuth.Return' => $return, '\SimpleSAML\Auth\Source.Return' => $return, '\SimpleSAML\Auth\DefaultAuth.ErrorURL' => $errorURL, '\SimpleSAML\Auth\Source.ErrorURL' => $errorURL, 'LoginCompletedHandler' => array(get_class(), 'loginCompleted'), 'LogoutCallback' => array(get_class(), 'logoutCallback'), 'LogoutCallbackState' => array('\SimpleSAML\Auth\DefaultAuth.logoutSource' => $this->authId, '\SimpleSAML\Auth\Source.logoutSource' => $this->authId))) is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 185
  28. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  29. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  30. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  3. Path: Read from $_REQUEST, and $_REQUEST['saml:idp'] is assigned to $options in modules/core/www/as_login.php on line 29
  1. Read from $_REQUEST, and $_REQUEST['saml:idp'] is assigned to $options
    in modules/core/www/as_login.php on line 29
  2. Simple::requireAuth() is called
    in modules/core/www/as_login.php on line 33
  3. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 104
  4. Simple::login() is called
    in lib/SimpleSAML/Auth/Simple.php on line 111
  5. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  6. (string)$params['ErrorURL'] is assigned to $errorURL
    in lib/SimpleSAML/Auth/Simple.php on line 153
  7. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  8. Enters via parameter $errorURL
    in lib/SimpleSAML/Auth/Source.php on line 180
  9. $errorURL is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 206
  10. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  11. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  12. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  4. Path: Read from $_REQUEST, and (string)$_REQUEST['RelayState'] is assigned to $relayState in modules/saml/lib/IdP/SAML2.php on line 312
  1. Read from $_REQUEST, and (string)$_REQUEST['RelayState'] is assigned to $relayState
    in modules/saml/lib/IdP/SAML2.php on line 312
  2. array('Responder' => array('\SimpleSAML\Module\saml\IdP\SAML2', 'sendResponse'), SimpleSAML\Auth\State::EXCEPTION_HANDLER_FUNC => array('\SimpleSAML\Module\saml\IdP\SAML2', 'handleAuthError'), SimpleSAML\Auth\State::RESTART => $sessionLostURL, 'SPMetadata' => $spMetadata->toArray(), 'saml:RelayState' => $relayState, 'saml:RequestId' => $requestId, 'saml:IDPList' => $IDPList, 'saml:ProxyCount' => $ProxyCount, 'saml:RequesterID' => $RequesterID, 'ForceAuthn' => $forceAuthn, 'isPassive' => $isPassive, 'saml:ConsumerURL' => $acsEndpoint['Location'], 'saml:Binding' => $acsEndpoint['Binding'], 'saml:NameIDFormat' => $nameIDFormat, 'saml:AllowCreate' => $allowCreate, 'saml:Extensions' => $extensions, 'saml:AuthnRequestReceivedAt' => microtime(true), 'saml:RequestedAuthnContext' => $authnContext) is assigned to $state
    in modules/saml/lib/IdP/SAML2.php on line 467
  3. IdP::handleAuthenticationRequest() is called
    in modules/saml/lib/IdP/SAML2.php on line 492
  4. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 387
  5. $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 391
  6. $spEntityId is assigned to $state
    in lib/SimpleSAML/IdP.php on line 400
  7. IdP::authenticate() is called
    in lib/SimpleSAML/IdP.php on line 415
  8. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 351
  9. Simple::login() is called
    in lib/SimpleSAML/IdP.php on line 357
  10. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  11. (string)$params['ReturnTo'] is assigned to $returnTo
    in lib/SimpleSAML/Auth/Simple.php on line 139
  12. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  13. Enters via parameter $return
    in lib/SimpleSAML/Auth/Source.php on line 180
  14. $return is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 202
  15. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  16. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  17. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  5. Path: Read from $_REQUEST, and (string)$_REQUEST['idp'] is assigned to $idp in modules/core/www/idp/logout-iframe-post.php on line 6
  1. Read from $_REQUEST, and (string)$_REQUEST['idp'] is assigned to $idp
    in modules/core/www/idp/logout-iframe-post.php on line 6
  2. IdP::getById() is called
    in modules/core/www/idp/logout-iframe-post.php on line 7
  3. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 131
  4. IdP::__construct() is called
    in lib/SimpleSAML/IdP.php on line 139
  5. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 69
  6. $id is assigned to property IdP::$id
    in lib/SimpleSAML/IdP.php on line 71
  7. Read from property IdP::$id, and $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 391
  8. $spEntityId is assigned to $state
    in lib/SimpleSAML/IdP.php on line 400
  9. IdP::authenticate() is called
    in lib/SimpleSAML/IdP.php on line 415
  10. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 351
  11. Simple::login() is called
    in lib/SimpleSAML/IdP.php on line 357
  12. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  13. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  14. Enters via parameter $params
    in lib/SimpleSAML/Auth/Source.php on line 180
  15. Data is passed through array_merge(), and array_merge($params, array('\SimpleSAML\Auth\DefaultAuth.id' => $this->authId, '\SimpleSAML\Auth\Source.id' => $this->authId, '\SimpleSAML\Auth\DefaultAuth.Return' => $return, '\SimpleSAML\Auth\Source.Return' => $return, '\SimpleSAML\Auth\DefaultAuth.ErrorURL' => $errorURL, '\SimpleSAML\Auth\Source.ErrorURL' => $errorURL, 'LoginCompletedHandler' => array(get_class(), 'loginCompleted'), 'LogoutCallback' => array(get_class(), 'logoutCallback'), 'LogoutCallbackState' => array('\SimpleSAML\Auth\DefaultAuth.logoutSource' => $this->authId, '\SimpleSAML\Auth\Source.logoutSource' => $this->authId))) is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 185
  16. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  17. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  18. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  6. Path: Read tainted data from array, and Data is passed through substr(), and self::getBaseURL() . $url_path . substr($_SERVER['REQUEST_URI'], $uri_pos + strlen($url_path)) is returned in lib/SimpleSAML/Utils/HTTP.php on line 859
  1. Read tainted data from array, and Data is passed through substr(), and self::getBaseURL() . $url_path . substr($_SERVER['REQUEST_URI'], $uri_pos + strlen($url_path)) is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 859
  2. Data is passed through addURLParameters(), and SimpleSAML\Utils\HTTP::addURLParameters(SimpleSAML\Utils\HTTP::getSelfURL(), array('cookieTime' => time())) is assigned to $sessionLostURL
    in modules/saml/lib/IdP/SAML1.php on line 251
  3. array('Responder' => array('\SimpleSAML\Module\saml\IdP\SAML1', 'sendResponse'), 'SPMetadata' => $spMetadata->toArray(), SimpleSAML\Auth\State::RESTART => $sessionLostURL, 'saml:shire' => $shire, 'saml:target' => $target, 'saml:AuthnRequestReceivedAt' => microtime(true)) is assigned to $state
    in modules/saml/lib/IdP/SAML1.php on line 256
  4. IdP::handleAuthenticationRequest() is called
    in modules/saml/lib/IdP/SAML1.php on line 265
  5. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 387
  6. $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 391
  7. $spEntityId is assigned to $state
    in lib/SimpleSAML/IdP.php on line 400
  8. IdP::authenticate() is called
    in lib/SimpleSAML/IdP.php on line 415
  9. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 351
  10. Simple::login() is called
    in lib/SimpleSAML/IdP.php on line 357
  11. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  12. (string)$params['ReturnTo'] is assigned to $returnTo
    in lib/SimpleSAML/Auth/Simple.php on line 139
  13. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  14. Enters via parameter $return
    in lib/SimpleSAML/Auth/Source.php on line 180
  15. $return is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 202
  16. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  17. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  18. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  7. Path: Read from $_REQUEST, and (string)$_REQUEST['shire'] is assigned to $shire in modules/saml/lib/IdP/SAML1.php on line 211
  1. Read from $_REQUEST, and (string)$_REQUEST['shire'] is assigned to $shire
    in modules/saml/lib/IdP/SAML1.php on line 211
  2. array('Responder' => array('\SimpleSAML\Module\saml\IdP\SAML1', 'sendResponse'), 'SPMetadata' => $spMetadata->toArray(), SimpleSAML\Auth\State::RESTART => $sessionLostURL, 'saml:shire' => $shire, 'saml:target' => $target, 'saml:AuthnRequestReceivedAt' => microtime(true)) is assigned to $state
    in modules/saml/lib/IdP/SAML1.php on line 256
  3. IdP::handleAuthenticationRequest() is called
    in modules/saml/lib/IdP/SAML1.php on line 265
  4. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 387
  5. $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 391
  6. $spEntityId is assigned to $state
    in lib/SimpleSAML/IdP.php on line 400
  7. IdP::authenticate() is called
    in lib/SimpleSAML/IdP.php on line 415
  8. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 351
  9. Simple::login() is called
    in lib/SimpleSAML/IdP.php on line 357
  10. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  11. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  12. Enters via parameter $params
    in lib/SimpleSAML/Auth/Source.php on line 180
  13. Data is passed through array_merge(), and array_merge($params, array('\SimpleSAML\Auth\DefaultAuth.id' => $this->authId, '\SimpleSAML\Auth\Source.id' => $this->authId, '\SimpleSAML\Auth\DefaultAuth.Return' => $return, '\SimpleSAML\Auth\Source.Return' => $return, '\SimpleSAML\Auth\DefaultAuth.ErrorURL' => $errorURL, '\SimpleSAML\Auth\Source.ErrorURL' => $errorURL, 'LoginCompletedHandler' => array(get_class(), 'loginCompleted'), 'LogoutCallback' => array(get_class(), 'logoutCallback'), 'LogoutCallbackState' => array('\SimpleSAML\Auth\DefaultAuth.logoutSource' => $this->authId, '\SimpleSAML\Auth\Source.logoutSource' => $this->authId))) is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 185
  14. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  15. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  16. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  8. Path: Read tainted data from array, and $_SERVER['HTTP_HOST'] is assigned to $current in lib/SimpleSAML/Utils/HTTP.php on line 64
  1. Read tainted data from array, and $_SERVER['HTTP_HOST'] is assigned to $current
    in lib/SimpleSAML/Utils/HTTP.php on line 64
  2. $current is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 80
  3. self::getServerHost() is assigned to $hostname
    in lib/SimpleSAML/Utils/HTTP.php on line 661
  4. $protocol . $hostname . $port . $path is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 665
  5. SimpleSAML\Utils\HTTP::getBaseURL() . 'module.php/' . $resource is assigned to $url
    in lib/SimpleSAML/Module.php on line 481
  6. $url is returned
    in lib/SimpleSAML/Module.php on line 485
  7. SimpleSAML\Module::getModuleURL('admin/test/' . $as, array()) is assigned to $url
    in modules/admin/lib/Controller/Test.php on line 82
  8. array('ErrorURL' => $url, 'ReturnTo' => $url) is assigned to $params
    in modules/admin/lib/Controller/Test.php on line 83
  9. Simple::login() is called
    in modules/admin/lib/Controller/Test.php on line 87
  10. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  11. (string)$params['ErrorURL'] is assigned to $errorURL
    in lib/SimpleSAML/Auth/Simple.php on line 153
  12. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  13. Enters via parameter $errorURL
    in lib/SimpleSAML/Auth/Source.php on line 180
  14. $errorURL is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 206
  15. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  16. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  17. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  9. Path: Read from $_REQUEST, and Data is passed through checkURLAllowed() in modules/core/www/as_login.php on line 21
  1. Read from $_REQUEST, and Data is passed through checkURLAllowed()
    in modules/core/www/as_login.php on line 21
  2. array('ReturnTo' => SimpleSAML\Utils\HTTP::checkURLAllowed($_REQUEST['ReturnTo'])) is assigned to $options
    in modules/core/www/as_login.php on line 20
  3. Simple::requireAuth() is called
    in modules/core/www/as_login.php on line 33
  4. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 104
  5. Simple::login() is called
    in lib/SimpleSAML/Auth/Simple.php on line 111
  6. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  7. (string)$params['ReturnTo'] is assigned to $returnTo
    in lib/SimpleSAML/Auth/Simple.php on line 139
  8. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  9. Enters via parameter $return
    in lib/SimpleSAML/Auth/Source.php on line 180
  10. $return is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 202
  11. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  12. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  13. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  10. Path: Read from $_REQUEST, and (string)IssetNode ? $_REQUEST['spentityid'] : $_REQUEST['providerId'] is assigned to $spEntityId in modules/saml/lib/IdP/SAML2.php on line 308
  1. Read from $_REQUEST, and (string)IssetNode ? $_REQUEST['spentityid'] : $_REQUEST['providerId'] is assigned to $spEntityId
    in modules/saml/lib/IdP/SAML2.php on line 308
  2. array('spentityid' => $spEntityId) is assigned to $sessionLostParams
    in modules/saml/lib/IdP/SAML2.php on line 450
  3. Data is passed through addURLParameters(), and SimpleSAML\Utils\HTTP::addURLParameters(SimpleSAML\Utils\HTTP::getSelfURLNoQuery(), $sessionLostParams) is assigned to $sessionLostURL
    in modules/saml/lib/IdP/SAML2.php on line 462
  4. array('Responder' => array('\SimpleSAML\Module\saml\IdP\SAML2', 'sendResponse'), SimpleSAML\Auth\State::EXCEPTION_HANDLER_FUNC => array('\SimpleSAML\Module\saml\IdP\SAML2', 'handleAuthError'), SimpleSAML\Auth\State::RESTART => $sessionLostURL, 'SPMetadata' => $spMetadata->toArray(), 'saml:RelayState' => $relayState, 'saml:RequestId' => $requestId, 'saml:IDPList' => $IDPList, 'saml:ProxyCount' => $ProxyCount, 'saml:RequesterID' => $RequesterID, 'ForceAuthn' => $forceAuthn, 'isPassive' => $isPassive, 'saml:ConsumerURL' => $acsEndpoint['Location'], 'saml:Binding' => $acsEndpoint['Binding'], 'saml:NameIDFormat' => $nameIDFormat, 'saml:AllowCreate' => $allowCreate, 'saml:Extensions' => $extensions, 'saml:AuthnRequestReceivedAt' => microtime(true), 'saml:RequestedAuthnContext' => $authnContext) is assigned to $state
    in modules/saml/lib/IdP/SAML2.php on line 467
  5. IdP::handleAuthenticationRequest() is called
    in modules/saml/lib/IdP/SAML2.php on line 492
  6. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 387
  7. $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 391
  8. $spEntityId is assigned to $state
    in lib/SimpleSAML/IdP.php on line 400
  9. IdP::authenticate() is called
    in lib/SimpleSAML/IdP.php on line 415
  10. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 351
  11. Simple::login() is called
    in lib/SimpleSAML/IdP.php on line 357
  12. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  13. (string)$params['ErrorURL'] is assigned to $errorURL
    in lib/SimpleSAML/Auth/Simple.php on line 153
  14. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  15. Enters via parameter $errorURL
    in lib/SimpleSAML/Auth/Source.php on line 180
  16. $errorURL is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 206
  17. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  18. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  19. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  11. Path: Read from $_REQUEST, and (string)$_REQUEST['target'] is assigned to $relayState in modules/saml/lib/IdP/SAML2.php on line 314
  1. Read from $_REQUEST, and (string)$_REQUEST['target'] is assigned to $relayState
    in modules/saml/lib/IdP/SAML2.php on line 314
  2. array('Responder' => array('\SimpleSAML\Module\saml\IdP\SAML2', 'sendResponse'), SimpleSAML\Auth\State::EXCEPTION_HANDLER_FUNC => array('\SimpleSAML\Module\saml\IdP\SAML2', 'handleAuthError'), SimpleSAML\Auth\State::RESTART => $sessionLostURL, 'SPMetadata' => $spMetadata->toArray(), 'saml:RelayState' => $relayState, 'saml:RequestId' => $requestId, 'saml:IDPList' => $IDPList, 'saml:ProxyCount' => $ProxyCount, 'saml:RequesterID' => $RequesterID, 'ForceAuthn' => $forceAuthn, 'isPassive' => $isPassive, 'saml:ConsumerURL' => $acsEndpoint['Location'], 'saml:Binding' => $acsEndpoint['Binding'], 'saml:NameIDFormat' => $nameIDFormat, 'saml:AllowCreate' => $allowCreate, 'saml:Extensions' => $extensions, 'saml:AuthnRequestReceivedAt' => microtime(true), 'saml:RequestedAuthnContext' => $authnContext) is assigned to $state
    in modules/saml/lib/IdP/SAML2.php on line 467
  3. IdP::handleAuthenticationRequest() is called
    in modules/saml/lib/IdP/SAML2.php on line 492
  4. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 387
  5. $spEntityId is assigned to $state
    in lib/SimpleSAML/IdP.php on line 400
  6. IdP::authenticate() is called
    in lib/SimpleSAML/IdP.php on line 415
  7. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 351
  8. Simple::login() is called
    in lib/SimpleSAML/IdP.php on line 357
  9. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  10. (string)$params['ErrorURL'] is assigned to $errorURL
    in lib/SimpleSAML/Auth/Simple.php on line 153
  11. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  12. Enters via parameter $errorURL
    in lib/SimpleSAML/Auth/Source.php on line 180
  13. $errorURL is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 206
  14. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  15. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  16. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  12. Path: Read from $_REQUEST, and (string)$_REQUEST['NameIDFormat'] is assigned to $nameIDFormat in modules/saml/lib/IdP/SAML2.php on line 326
  1. Read from $_REQUEST, and (string)$_REQUEST['NameIDFormat'] is assigned to $nameIDFormat
    in modules/saml/lib/IdP/SAML2.php on line 326
  2. array('Responder' => array('\SimpleSAML\Module\saml\IdP\SAML2', 'sendResponse'), SimpleSAML\Auth\State::EXCEPTION_HANDLER_FUNC => array('\SimpleSAML\Module\saml\IdP\SAML2', 'handleAuthError'), SimpleSAML\Auth\State::RESTART => $sessionLostURL, 'SPMetadata' => $spMetadata->toArray(), 'saml:RelayState' => $relayState, 'saml:RequestId' => $requestId, 'saml:IDPList' => $IDPList, 'saml:ProxyCount' => $ProxyCount, 'saml:RequesterID' => $RequesterID, 'ForceAuthn' => $forceAuthn, 'isPassive' => $isPassive, 'saml:ConsumerURL' => $acsEndpoint['Location'], 'saml:Binding' => $acsEndpoint['Binding'], 'saml:NameIDFormat' => $nameIDFormat, 'saml:AllowCreate' => $allowCreate, 'saml:Extensions' => $extensions, 'saml:AuthnRequestReceivedAt' => microtime(true), 'saml:RequestedAuthnContext' => $authnContext) is assigned to $state
    in modules/saml/lib/IdP/SAML2.php on line 467
  3. IdP::handleAuthenticationRequest() is called
    in modules/saml/lib/IdP/SAML2.php on line 492
  4. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 387
  5. $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 391
  6. $spEntityId is assigned to $state
    in lib/SimpleSAML/IdP.php on line 400
  7. IdP::authenticate() is called
    in lib/SimpleSAML/IdP.php on line 415
  8. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 351
  9. Simple::login() is called
    in lib/SimpleSAML/IdP.php on line 357
  10. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  11. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  12. Enters via parameter $params
    in lib/SimpleSAML/Auth/Source.php on line 180
  13. Data is passed through array_merge(), and array_merge($params, array('\SimpleSAML\Auth\DefaultAuth.id' => $this->authId, '\SimpleSAML\Auth\Source.id' => $this->authId, '\SimpleSAML\Auth\DefaultAuth.Return' => $return, '\SimpleSAML\Auth\Source.Return' => $return, '\SimpleSAML\Auth\DefaultAuth.ErrorURL' => $errorURL, '\SimpleSAML\Auth\Source.ErrorURL' => $errorURL, 'LoginCompletedHandler' => array(get_class(), 'loginCompleted'), 'LogoutCallback' => array(get_class(), 'logoutCallback'), 'LogoutCallbackState' => array('\SimpleSAML\Auth\DefaultAuth.logoutSource' => $this->authId, '\SimpleSAML\Auth\Source.logoutSource' => $this->authId))) is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 185
  14. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  15. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  16. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  13. Path: Read from $_REQUEST, and (string)$_REQUEST['as'] is assigned to $asId in modules/core/www/authenticate.php on line 13
  1. Read from $_REQUEST, and (string)$_REQUEST['as'] is assigned to $asId
    in modules/core/www/authenticate.php on line 13
  2. Data is passed through getModuleURL(), and SimpleSAML\Module::getModuleURL('core/authenticate.php', array('as' => $asId)) is assigned to $url
    in modules/core/www/authenticate.php on line 33
  3. array('ErrorURL' => $url, 'ReturnTo' => $url) is assigned to $params
    in modules/core/www/authenticate.php on line 34
  4. Simple::login() is called
    in modules/core/www/authenticate.php on line 38
  5. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  6. (string)$params['ReturnTo'] is assigned to $returnTo
    in lib/SimpleSAML/Auth/Simple.php on line 139
  7. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  8. Enters via parameter $return
    in lib/SimpleSAML/Auth/Source.php on line 180
  9. $return is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 202
  10. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  11. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  12. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  14. Path: Read from $_REQUEST, and $_REQUEST['target'] is assigned to $target in modules/saml/lib/IdP/SAML1.php on line 214
  1. Read from $_REQUEST, and $_REQUEST['target'] is assigned to $target
    in modules/saml/lib/IdP/SAML1.php on line 214
  2. array('Responder' => array('\SimpleSAML\Module\saml\IdP\SAML1', 'sendResponse'), 'SPMetadata' => $spMetadata->toArray(), SimpleSAML\Auth\State::RESTART => $sessionLostURL, 'saml:shire' => $shire, 'saml:target' => $target, 'saml:AuthnRequestReceivedAt' => microtime(true)) is assigned to $state
    in modules/saml/lib/IdP/SAML1.php on line 256
  3. IdP::handleAuthenticationRequest() is called
    in modules/saml/lib/IdP/SAML1.php on line 265
  4. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 387
  5. $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 391
  6. $spEntityId is assigned to $state
    in lib/SimpleSAML/IdP.php on line 400
  7. IdP::authenticate() is called
    in lib/SimpleSAML/IdP.php on line 415
  8. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 351
  9. Simple::login() is called
    in lib/SimpleSAML/IdP.php on line 357
  10. Enters via parameter $params
    in lib/SimpleSAML/Auth/Simple.php on line 130
  11. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  12. Enters via parameter $params
    in lib/SimpleSAML/Auth/Source.php on line 180
  13. Data is passed through array_merge(), and array_merge($params, array('\SimpleSAML\Auth\DefaultAuth.id' => $this->authId, '\SimpleSAML\Auth\Source.id' => $this->authId, '\SimpleSAML\Auth\DefaultAuth.Return' => $return, '\SimpleSAML\Auth\Source.Return' => $return, '\SimpleSAML\Auth\DefaultAuth.ErrorURL' => $errorURL, '\SimpleSAML\Auth\Source.ErrorURL' => $errorURL, 'LoginCompletedHandler' => array(get_class(), 'loginCompleted'), 'LogoutCallback' => array(get_class(), 'logoutCallback'), 'LogoutCallbackState' => array('\SimpleSAML\Auth\DefaultAuth.logoutSource' => $this->authId, '\SimpleSAML\Auth\Source.logoutSource' => $this->authId))) is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 185
  14. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  15. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  16. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237
  15. Path: Read from $_REQUEST, and Simple::__construct() is called in modules/core/www/as_login.php on line 32
  1. Read from $_REQUEST, and Simple::__construct() is called
    in modules/core/www/as_login.php on line 32
  2. Enters via parameter $authSource
    in lib/SimpleSAML/Auth/Simple.php on line 42
  3. $authSource is assigned to property Simple::$authSource
    in lib/SimpleSAML/Auth/Simple.php on line 49
  4. Read from property Simple::$authSource
    in lib/SimpleSAML/Auth/Simple.php on line 330
  5. Data is passed through getModuleURL(), and SimpleSAML\Module::getModuleURL('core/as_login.php', array('AuthId' => $this->authSource, 'ReturnTo' => $returnTo)) is assigned to $login
    in lib/SimpleSAML/Auth/Simple.php on line 329
  6. $login is returned
    in lib/SimpleSAML/Auth/Simple.php on line 334
  7. $this->getLoginURL($returnTo) is assigned to $restartURL
    in lib/SimpleSAML/Auth/Simple.php on line 164
  8. $restartURL is assigned to $params
    in lib/SimpleSAML/Auth/Simple.php on line 165
  9. Source::initLogin() is called
    in lib/SimpleSAML/Auth/Simple.php on line 169
  10. Enters via parameter $params
    in lib/SimpleSAML/Auth/Source.php on line 180
  11. Data is passed through array_merge(), and array_merge($params, array('\SimpleSAML\Auth\DefaultAuth.id' => $this->authId, '\SimpleSAML\Auth\Source.id' => $this->authId, '\SimpleSAML\Auth\DefaultAuth.Return' => $return, '\SimpleSAML\Auth\Source.Return' => $return, '\SimpleSAML\Auth\DefaultAuth.ErrorURL' => $errorURL, '\SimpleSAML\Auth\Source.ErrorURL' => $errorURL, 'LoginCompletedHandler' => array(get_class(), 'loginCompleted'), 'LogoutCallback' => array(get_class(), 'logoutCallback'), 'LogoutCallbackState' => array('\SimpleSAML\Auth\DefaultAuth.logoutSource' => $this->authId, '\SimpleSAML\Auth\Source.logoutSource' => $this->authId))) is assigned to $state
    in lib/SimpleSAML/Auth/Source.php on line 185
  12. Source::loginCompleted() is called
    in lib/SimpleSAML/Auth/Source.php on line 217
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 229
  14. $state['\SimpleSAML\Auth\Source.Return'] is assigned to $return
    in lib/SimpleSAML/Auth/Source.php on line 237

General Strategies to prevent injection

In general, it is advisable to prevent any user-data to reach this point. This can be done by white-listing certain values:

if ( ! in_array($value, array('this-is-allowed', 'and-this-too'), true)) {
    throw new \InvalidArgumentException('This input is not allowed.');
}

For numeric data, we recommend to explicitly cast the data:

$sanitized = (integer) $tainted;
Loading history...
249
        }
250
        assert(false);
251
    }
252
253
254
    /**
255
     * Log out from this authentication source.
256
     *
257
     * This function should be overridden if the authentication source requires special
258
     * steps to complete a logout operation.
259
     *
260
     * If the logout process requires a redirect, the state should be saved. Once the
261
     * logout operation is completed, the state should be restored, and completeLogout
262
     * should be called with the state. If this operation can be completed without
263
     * showing the user a page, or redirecting, this function should return.
264
     *
265
     * @param array &$state Information about the current logout operation.
266
     * @return void
267
     */
268
    public function logout(&$state)
269
    {
270
        assert(is_array($state));
271
        // default logout handler which doesn't do anything
272
    }
273
274
275
    /**
276
     * Complete logout.
277
     *
278
     * This function should be called after logout has completed. It will never return,
279
     * except in the case of exceptions. Exceptions thrown from this page should not be caught,
280
     * but should instead be passed to the top-level exception handler.
281
     *
282
     * @param array &$state Information about the current authentication.
283
     * @return void
284
     */
285
    public static function completeLogout(&$state)
286
    {
287
        assert(is_array($state));
288
        assert(array_key_exists('LogoutCompletedHandler', $state));
289
290
        State::deleteState($state);
291
292
        $func = $state['LogoutCompletedHandler'];
293
        assert(is_callable($func));
294
295
        call_user_func($func, $state);
0 ignored issues
show
Security Code Execution introduced by
$func can contain request data and is used in code execution context(s) leading to a potential security vulnerability.

13 paths for user data to reach this point

  1. Path: Session::setData() is called in lib/SimpleSAML/Auth/State.php on line 220
  1. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  2. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  3. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  4. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  5. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  6. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  7. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  8. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  9. SimpleSAML\Auth\State::loadState($id, 'core:short_sso_interval') is assigned to $state
    in modules/core/www/short_sso_interval.php on line 16
  10. ProcessingChain::resumeProcessing() is called
    in modules/core/www/short_sso_interval.php on line 22
  11. Enters via parameter $state
    in lib/SimpleSAML/Auth/ProcessingChain.php on line 239
  12. State::saveState() is called
    in lib/SimpleSAML/Auth/ProcessingChain.php on line 266
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  14. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  15. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  16. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  17. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  18. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  19. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  20. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  21. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  22. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  23. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  24. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  25. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  26. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  2. Path: Read from $_REQUEST, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called in www/saml2/idp/SingleLogoutService.php on line 20
  1. Read from $_REQUEST, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called
    in www/saml2/idp/SingleLogoutService.php on line 20
  2. Enters via parameter $url
    in lib/SimpleSAML/IdP.php on line 548
  3. array('Responder' => array('\SimpleSAML\IdP', 'finishLogoutRedirect'), 'core:Logout:URL' => $url) is assigned to $state
    in lib/SimpleSAML/IdP.php on line 552
  4. IdP::handleLogoutRequest() is called
    in lib/SimpleSAML/IdP.php on line 557
  5. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 484
  6. IFrameLogoutHandler::startLogout() is called
    in lib/SimpleSAML/IdP.php on line 506
  7. Enters via parameter $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 47
  8. $associations is assigned to $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 62
  9. State::saveState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 76
  10. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  11. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  12. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  13. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  14. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  15. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  16. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  17. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  18. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  19. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  20. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  21. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  22. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  23. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  3. Path: ParameterBag::get() returns request data in vendor/symfony/http-foundation/ParameterBag.php on line 82
  1. ParameterBag::get() returns request data
    in vendor/symfony/http-foundation/ParameterBag.php on line 82
  2. $request->server->get('PATH_INFO') is assigned to $url
    in lib/SimpleSAML/Module.php on line 138
  3. Data is passed through substr(), and substr($url, 1) is assigned to $module
    in lib/SimpleSAML/Module.php on line 149
  4. NotFound::__construct() is called
    in lib/SimpleSAML/Module.php on line 157
  5. Enters via parameter $reason
    in lib/SimpleSAML/Error/NotFound.php on line 32
  6. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  7. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  8. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  9. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  10. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpass.php on line 87
  11. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpass.php on line 89
  12. State::saveState() is called
    in modules/core/www/loginuserpass.php on line 93
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  14. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  15. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  16. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  17. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  18. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  19. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  20. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  21. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  22. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  23. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  24. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  25. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  26. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  4. Path: Read from $_REQUEST, and (string)$_REQUEST['idp'] is assigned to $idp in modules/core/www/idp/logout-iframe-post.php on line 6
  1. Read from $_REQUEST, and (string)$_REQUEST['idp'] is assigned to $idp
    in modules/core/www/idp/logout-iframe-post.php on line 6
  2. IdP::getById() is called
    in modules/core/www/idp/logout-iframe-post.php on line 7
  3. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 131
  4. IdP::__construct() is called
    in lib/SimpleSAML/IdP.php on line 139
  5. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 69
  6. $id is assigned to property IdP::$id
    in lib/SimpleSAML/IdP.php on line 71
  7. Read from property IdP::$id, and $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 489
  8. IFrameLogoutHandler::startLogout() is called
    in lib/SimpleSAML/IdP.php on line 506
  9. Enters via parameter $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 47
  10. $associations is assigned to $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 62
  11. State::saveState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 76
  12. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  13. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  14. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  15. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  16. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  17. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  18. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  19. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  20. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  21. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  22. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  23. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  24. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  25. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  5. Path: Read from $_GET, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called in www/saml2/idp/initSLO.php on line 15
  1. Read from $_GET, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called
    in www/saml2/idp/initSLO.php on line 15
  2. Enters via parameter $url
    in lib/SimpleSAML/IdP.php on line 548
  3. array('Responder' => array('\SimpleSAML\IdP', 'finishLogoutRedirect'), 'core:Logout:URL' => $url) is assigned to $state
    in lib/SimpleSAML/IdP.php on line 552
  4. IdP::handleLogoutRequest() is called
    in lib/SimpleSAML/IdP.php on line 557
  5. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 484
  6. IFrameLogoutHandler::startLogout() is called
    in lib/SimpleSAML/IdP.php on line 506
  7. Enters via parameter $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 47
  8. $associations is assigned to $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 62
  9. State::saveState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 76
  10. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  11. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  12. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  13. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  14. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  15. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  16. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  17. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  18. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  19. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  20. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  21. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  22. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  23. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  6. Path: Read tainted data from array, and Data is passed through substr(), and substr($_SERVER['PATH_INFO'], 1) is assigned to $sourceId in modules/saml/www/sp/saml2-acs.php on line 11
  1. Read tainted data from array, and Data is passed through substr(), and substr($_SERVER['PATH_INFO'], 1) is assigned to $sourceId
    in modules/saml/www/sp/saml2-acs.php on line 11
  2. array('saml:sp:isUnsolicited' => true, 'saml:sp:AuthId' => $sourceId, 'saml:sp:RelayState' => SimpleSAML\Utils\HTTP::checkURLAllowed($spMetadata->getString('RelayState', $response->getRelayState()))) is assigned to $state
    in modules/saml/www/sp/saml2-acs.php on line 126
  3. State::throwException() is called
    in modules/saml/www/sp/saml2-acs.php on line 149
  4. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 356
  5. State::saveState() is called
    in lib/SimpleSAML/Auth/State.php on line 363
  6. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  7. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  8. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  9. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  10. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  11. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  12. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  13. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  14. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  15. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  16. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  17. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  18. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  19. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  7. Path: Read tainted data from array, and $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI'] is returned in lib/SimpleSAML/Utils/HTTP.php on line 856
  1. Read tainted data from array, and $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI'] is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 856
  2. SimpleSAML\Utils\HTTP::getSelfURL() is assigned to $url
    in lib/SimpleSAML/Error/NotFound.php on line 36
  3. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  4. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  5. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  6. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  7. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpassorg.php on line 112
  8. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpassorg.php on line 114
  9. State::saveState() is called
    in modules/core/www/loginuserpassorg.php on line 119
  10. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  11. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  12. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  13. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  14. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  15. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  16. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  17. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  18. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  19. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  20. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  21. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  22. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  23. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  8. Path: Read from $_SERVER in lib/SimpleSAML/Utils/HTTP.php on line 119
  1. Read from $_SERVER
    in lib/SimpleSAML/Utils/HTTP.php on line 119
  2. State::saveState() is called
    in modules/core/lib/Auth/UserPassOrgBase.php on line 225
  3. Enters via parameter $stage
    in lib/SimpleSAML/Auth/State.php on line 205
  4. $stage is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 215
  5. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  6. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  7. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  8. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  9. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  10. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  11. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  12. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  13. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  14. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  15. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  16. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  17. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  9. Path: Read from $_REQUEST, and (string)$_REQUEST['RelayState'] is assigned to $relayState in modules/core/www/idp/logout-iframe-post.php on line 16
  1. Read from $_REQUEST, and (string)$_REQUEST['RelayState'] is assigned to $relayState
    in modules/core/www/idp/logout-iframe-post.php on line 16
  2. Message::setRelayState() is called
    in modules/core/www/idp/logout-iframe-post.php on line 58
  3. Enters via parameter $relayState
    in vendor/simplesamlphp/saml2/src/SAML2/Message.php on line 439
  4. $relayState is assigned to property LogoutRequest::$relayState
    in vendor/simplesamlphp/saml2/src/SAML2/Message.php on line 443
  5. Read from property LogoutRequest::$relayState, and $this->relayState is returned
    in vendor/simplesamlphp/saml2/src/SAML2/Message.php on line 429
  6. array('Responder' => array('\SimpleSAML\Module\saml\IdP\SAML2', 'sendLogoutResponse'), 'saml:SPEntityId' => $spEntityId, 'saml:RelayState' => $message->getRelayState(), 'saml:RequestId' => $message->getId()) is assigned to $state
    in modules/saml/lib/IdP/SAML2.php on line 663
  7. IdP::handleLogoutRequest() is called
    in modules/saml/lib/IdP/SAML2.php on line 671
  8. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 484
  9. $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 489
  10. State::saveState() is called
    in lib/SimpleSAML/IdP.php on line 499
  11. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  12. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  13. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  14. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  15. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  16. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  17. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  18. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  19. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  20. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  21. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  22. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  23. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  24. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  10. Path: Session::setData() is called in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  1. Session::setData() is called
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  2. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  3. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  4. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  5. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  6. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  7. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  8. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  9. SimpleSAML\Auth\State::loadState($authStateId, SimpleSAML\Module\multiauth\Auth\Source\MultiAuth::STAGEID) is assigned to $state
    in modules/multiauth/www/selectsource.php on line 20
  10. $state['multiauth:preselect'] is assigned to $source
    in modules/multiauth/www/selectsource.php on line 49
  11. MultiAuth::delegateAuthentication() is called
    in modules/multiauth/www/selectsource.php on line 50
  12. Enters via parameter $authId
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 186
  13. Session::setData() is called
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  14. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  15. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  16. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  17. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  18. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  19. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  20. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  21. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  22. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  23. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  24. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  11. Path: Read tainted data from array, and $_SERVER['HTTP_HOST'] is assigned to $current in lib/SimpleSAML/Utils/HTTP.php on line 64
  1. Read tainted data from array, and $_SERVER['HTTP_HOST'] is assigned to $current
    in lib/SimpleSAML/Utils/HTTP.php on line 64
  2. $current is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 80
  3. self::getServerHost() is assigned to $hostname
    in lib/SimpleSAML/Utils/HTTP.php on line 853
  4. $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI'] is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 856
  5. SimpleSAML\Utils\HTTP::getSelfURL() is assigned to $url
    in lib/SimpleSAML/Error/NotFound.php on line 36
  6. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  7. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  8. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  9. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  10. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpassorg.php on line 112
  11. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpassorg.php on line 114
  12. State::saveState() is called
    in modules/core/www/loginuserpassorg.php on line 119
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  14. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  15. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  16. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  17. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  18. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  19. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  20. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  21. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  22. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  23. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  24. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  25. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  26. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  12. Path: Read tainted data from array, and Data is passed through substr(), and self::getBaseURL() . $url_path . substr($_SERVER['REQUEST_URI'], $uri_pos + strlen($url_path)) is returned in lib/SimpleSAML/Utils/HTTP.php on line 859
  1. Read tainted data from array, and Data is passed through substr(), and self::getBaseURL() . $url_path . substr($_SERVER['REQUEST_URI'], $uri_pos + strlen($url_path)) is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 859
  2. SimpleSAML\Utils\HTTP::getSelfURL() is assigned to $url
    in lib/SimpleSAML/Error/NotFound.php on line 36
  3. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  4. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  5. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  6. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  7. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpassorg.php on line 112
  8. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpassorg.php on line 114
  9. State::saveState() is called
    in modules/core/www/loginuserpassorg.php on line 119
  10. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  11. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  12. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  13. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  14. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  15. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  16. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  17. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  18. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  19. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  20. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  21. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  22. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  23. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292
  13. Path: ConfigurationError::__construct() is called in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 64
  1. ConfigurationError::__construct() is called
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 64
  2. Enters via parameter $reason
    in lib/SimpleSAML/Error/ConfigurationError.php on line 38
  3. $reason is assigned to property ConfigurationError::$reason
    in lib/SimpleSAML/Error/ConfigurationError.php on line 52
  4. Read from property ConfigurationError::$reason, and $this->reason is returned
    in lib/SimpleSAML/Error/ConfigurationError.php on line 66
  5. $exception->getReason() is assigned to $reason
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 78
  6. CriticalConfigurationError::__construct() is called
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 83
  7. Enters via parameter $reason
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 52
  8. ConfigurationError::__construct() is called
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 64
  9. Enters via parameter $reason
    in lib/SimpleSAML/Error/ConfigurationError.php on line 38
  10. $reason is assigned to $params
    in lib/SimpleSAML/Error/ConfigurationError.php on line 49
  11. Error::__construct() is called
    in lib/SimpleSAML/Error/ConfigurationError.php on line 54
  12. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  13. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  14. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  15. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpass.php on line 87
  16. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpass.php on line 89
  17. State::saveState() is called
    in modules/core/www/loginuserpass.php on line 93
  18. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  19. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  20. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  21. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  22. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  23. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  24. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  25. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  26. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  27. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  28. SimpleSAML\Auth\State::loadState($relayState, 'saml:slosent') is assigned to $state
    in modules/saml/www/sp/saml2-logout.php on line 76
  29. Source::completeLogout() is called
    in modules/saml/www/sp/saml2-logout.php on line 78
  30. Enters via parameter $state
    in lib/SimpleSAML/Auth/Source.php on line 285
  31. $state['LogoutCompletedHandler'] is assigned to $func
    in lib/SimpleSAML/Auth/Source.php on line 292

General Strategies to prevent injection

In general, it is advisable to prevent any user-data to reach this point. This can be done by white-listing certain values:

if ( ! in_array($value, array('this-is-allowed', 'and-this-too'), true)) {
    throw new \InvalidArgumentException('This input is not allowed.');
}

For numeric data, we recommend to explicitly cast the data:

$sanitized = (integer) $tainted;
Loading history...
296
        assert(false);
297
    }
298
299
300
    /**
301
     * Create authentication source object from configuration array.
302
     *
303
     * This function takes an array with the configuration for an authentication source object,
304
     * and returns the object.
305
     *
306
     * @param string $authId The authentication source identifier.
307
     * @param array  $config The configuration.
308
     *
309
     * @return \SimpleSAML\Auth\Source The parsed authentication source.
310
     * @throws \Exception If the authentication source is invalid.
311
     */
312
    private static function parseAuthSource(string $authId, array $config): Source
313
    {
314
        self::validateSource($config, $authId);
315
316
        $id = $config[0];
317
        $info = ['AuthId' => $authId];
318
        $authSource = null;
319
320
        unset($config[0]);
321
322
        try {
323
            // Check whether or not there's a factory responsible for instantiating our Auth Source instance
324
            $factoryClass = Module::resolveClass(
325
                $id,
326
                'Auth\Source\Factory',
327
                '\SimpleSAML\Auth\SourceFactory'
328
            );
329
330
            /** @var SourceFactory $factory */
331
            $factory = new $factoryClass();
332
            $authSource = $factory->create($info, $config);
333
        } catch (\Exception $e) {
334
            // If not, instantiate the Auth Source here
335
            $className = Module::resolveClass($id, 'Auth\Source', '\SimpleSAML\Auth\Source');
336
            $authSource = new $className($info, $config);
337
        }
338
339
        /** @var \SimpleSAML\Auth\Source */
340
        return $authSource;
341
    }
342
343
344
    /**
345
     * Retrieve authentication source.
346
     *
347
     * This function takes an id of an authentication source, and returns the
348
     * AuthSource object. If no authentication source with the given id can be found,
349
     * NULL will be returned.
350
     *
351
     * If the $type parameter is specified, this function will return an
352
     * authentication source of the given type. If no authentication source or if an
353
     * authentication source of a different type is found, an exception will be thrown.
354
     *
355
     * @param string      $authId The authentication source identifier.
356
     * @param string|null $type The type of authentication source. If NULL, any type will be accepted.
357
     *
358
     * @return \SimpleSAML\Auth\Source|null The AuthSource object, or NULL if no authentication
359
     *     source with the given identifier is found.
360
     * @throws \SimpleSAML\Error\Exception If no such authentication source is found or it is invalid.
361
     */
362
    public static function getById($authId, $type = null)
363
    {
364
        assert(is_string($authId));
365
        assert($type === null || is_string($type));
366
367
        // for now - load and parse config file
368
        $config = Configuration::getConfig('authsources.php');
369
370
        $authConfig = $config->getArray($authId, null);
371
        if ($authConfig === null) {
372
            if ($type !== null) {
373
                throw new Error\Exception(
374
                    'No authentication source with id ' .
375
                    var_export($authId, true) . ' found.'
376
                );
377
            }
378
            return null;
379
        }
380
381
        $ret = self::parseAuthSource($authId, $authConfig);
382
383
        if ($type === null || $ret instanceof $type) {
384
            return $ret;
385
        }
386
387
        // the authentication source doesn't have the correct type
388
        throw new Error\Exception(
389
            'Invalid type of authentication source ' .
390
            var_export($authId, true) . '. Was ' . var_export(get_class($ret), true) .
391
            ', should be ' . var_export($type, true) . '.'
392
        );
393
    }
394
395
396
    /**
397
     * Called when the authentication source receives an external logout request.
398
     *
399
     * @param array $state State array for the logout operation.
400
     * @return void
401
     */
402
    public static function logoutCallback($state)
403
    {
404
        assert(is_array($state));
405
        assert(array_key_exists('\SimpleSAML\Auth\Source.logoutSource', $state));
406
407
        $source = $state['\SimpleSAML\Auth\Source.logoutSource'];
408
409
        $session = Session::getSessionFromRequest();
410
        if (!$session->isValid($source)) {
411
            Logger::warning(
412
                'Received logout from an invalid authentication source ' .
413
                var_export($source, true)
414
            );
415
416
            return;
417
        }
418
        $session->doLogout($source);
419
    }
420
421
422
    /**
423
     * Add a logout callback association.
424
     *
425
     * This function adds a logout callback association, which allows us to initiate
426
     * a logout later based on the $assoc-value.
427
     *
428
     * Note that logout-associations exists per authentication source. A logout association
429
     * from one authentication source cannot be called from a different authentication source.
430
     *
431
     * @param string $assoc The identifier for this logout association.
432
     * @param array  $state The state array passed to the authenticate-function.
433
     * @return void
434
     */
435
    protected function addLogoutCallback($assoc, $state)
436
    {
437
        assert(is_string($assoc));
438
        assert(is_array($state));
439
440
        if (!array_key_exists('LogoutCallback', $state)) {
441
            // the authentication requester doesn't have a logout callback
442
            return;
443
        }
444
        $callback = $state['LogoutCallback'];
445
446
        if (array_key_exists('LogoutCallbackState', $state)) {
447
            $callbackState = $state['LogoutCallbackState'];
448
        } else {
449
            $callbackState = [];
450
        }
451
452
        $id = strlen($this->authId) . ':' . $this->authId . $assoc;
453
454
        $data = [
455
            'callback' => $callback,
456
            'state'    => $callbackState,
457
        ];
458
459
        $session = Session::getSessionFromRequest();
460
        $session->setData(
461
            '\SimpleSAML\Auth\Source.LogoutCallbacks',
462
            $id,
463
            $data,
464
            Session::DATA_TIMEOUT_SESSION_END
465
        );
466
    }
467
468
469
    /**
470
     * Call a logout callback based on association.
471
     *
472
     * This function calls a logout callback based on an association saved with
473
     * addLogoutCallback(...).
474
     *
475
     * This function always returns.
476
     *
477
     * @param string $assoc The logout association which should be called.
478
     * @return void
479
     */
480
    protected function callLogoutCallback($assoc)
481
    {
482
        assert(is_string($assoc));
483
484
        $id = strlen($this->authId) . ':' . $this->authId . $assoc;
485
486
        $session = Session::getSessionFromRequest();
487
488
        $data = $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id);
489
        if ($data === null) {
490
            // FIXME: fix for IdP-first flow (issue 397) -> reevaluate logout callback infrastructure
491
            $session->doLogout($this->authId);
492
493
            return;
494
        }
495
496
        assert(is_array($data));
497
        assert(array_key_exists('callback', $data));
498
        assert(array_key_exists('state', $data));
499
500
        $callback = $data['callback'];
501
        $callbackState = $data['state'];
502
503
        $session->deleteData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id);
504
        call_user_func($callback, $callbackState);
0 ignored issues
show
Security Code Execution introduced by
$callback can contain request data and is used in code execution context(s) leading to a potential security vulnerability.

15 paths for user data to reach this point

  1. Path: Session::setData() is called in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  1. Session::setData() is called
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  2. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  3. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  4. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  5. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  6. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  7. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  8. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  9. SimpleSAML\Auth\State::loadState($_REQUEST['id'], 'core:Logout:afterbridge') is assigned to $state
    in modules/core/www/idp/resumelogout.php on line 8
  10. IFrameLogoutHandler::startLogout() is called
    in modules/core/www/idp/resumelogout.php on line 14
  11. Enters via parameter $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 47
  12. $associations is assigned to $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 62
  13. State::saveState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 76
  14. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  15. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  16. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  17. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  18. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  19. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  20. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  21. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  22. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  23. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  24. SimpleSAML\Auth\State::loadState($authStateId, SimpleSAML\Module\multiauth\Auth\Source\MultiAuth::STAGEID) is assigned to $state
    in modules/multiauth/www/selectsource.php on line 20
  25. $state['multiauth:preselect'] is assigned to $source
    in modules/multiauth/www/selectsource.php on line 49
  26. MultiAuth::delegateAuthentication() is called
    in modules/multiauth/www/selectsource.php on line 50
  27. Enters via parameter $authId
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 186
  28. Session::setData() is called
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  29. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  30. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  31. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  32. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  33. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  34. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  2. Path: Session::setData() is called in lib/SimpleSAML/Auth/State.php on line 220
  1. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  2. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  3. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  4. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  5. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  6. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  7. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  8. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  9. SimpleSAML\Auth\State::loadState($stateId, 'core:short_sso_interval') is assigned to $state
    in modules/core/lib/Controller/Exception.php on line 151
  10. ProcessingChain::resumeProcessing() is called
    in modules/core/lib/Controller/Exception.php on line 156
  11. Enters via parameter $state
    in lib/SimpleSAML/Auth/ProcessingChain.php on line 239
  12. State::throwException() is called
    in lib/SimpleSAML/Auth/ProcessingChain.php on line 248
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 356
  14. State::saveState() is called
    in lib/SimpleSAML/Auth/State.php on line 363
  15. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  16. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  17. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  18. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  19. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  20. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  21. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  22. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  23. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  24. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  25. SimpleSAML\Auth\State::loadState($authStateId, SimpleSAML\Module\multiauth\Auth\Source\MultiAuth::STAGEID) is assigned to $state
    in modules/multiauth/www/selectsource.php on line 20
  26. $state['multiauth:preselect'] is assigned to $source
    in modules/multiauth/www/selectsource.php on line 49
  27. MultiAuth::delegateAuthentication() is called
    in modules/multiauth/www/selectsource.php on line 50
  28. Enters via parameter $authId
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 186
  29. Session::setData() is called
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  30. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  31. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  32. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  33. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  34. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  35. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  3. Path: Read from $_SERVER in lib/SimpleSAML/Utils/HTTP.php on line 119
  1. Read from $_SERVER
    in lib/SimpleSAML/Utils/HTTP.php on line 119
  2. State::saveState() is called
    in modules/core/lib/Auth/UserPassOrgBase.php on line 225
  3. Enters via parameter $stage
    in lib/SimpleSAML/Auth/State.php on line 205
  4. $stage is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 215
  5. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  6. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  7. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  8. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  9. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  10. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  11. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  12. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  13. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  14. SimpleSAML\Auth\State::loadState($authStateId, SimpleSAML\Module\multiauth\Auth\Source\MultiAuth::STAGEID) is assigned to $state
    in modules/multiauth/www/selectsource.php on line 20
  15. $state['multiauth:preselect'] is assigned to $source
    in modules/multiauth/www/selectsource.php on line 49
  16. MultiAuth::delegateAuthentication() is called
    in modules/multiauth/www/selectsource.php on line 50
  17. Enters via parameter $authId
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 186
  18. Session::setData() is called
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  19. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  20. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  21. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  22. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  23. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  24. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  4. Path: Read tainted data from array, and Data is passed through substr(), and substr($_SERVER['PATH_INFO'], 1) is assigned to $sourceId in modules/saml/www/sp/saml2-acs.php on line 11
  1. Read tainted data from array, and Data is passed through substr(), and substr($_SERVER['PATH_INFO'], 1) is assigned to $sourceId
    in modules/saml/www/sp/saml2-acs.php on line 11
  2. array('saml:sp:isUnsolicited' => true, 'saml:sp:AuthId' => $sourceId, 'saml:sp:RelayState' => SimpleSAML\Utils\HTTP::checkURLAllowed($spMetadata->getString('RelayState', $response->getRelayState()))) is assigned to $state
    in modules/saml/www/sp/saml2-acs.php on line 126
  3. State::throwException() is called
    in modules/saml/www/sp/saml2-acs.php on line 203
  4. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 356
  5. State::saveState() is called
    in lib/SimpleSAML/Auth/State.php on line 363
  6. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  7. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  8. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  9. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  10. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  11. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  12. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  13. $session->getData('\SimpleSAML\Auth\State', $sid['id']) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 280
  14. Data is passed through unserialize(), and unserialize($state) is assigned to $state
    in lib/SimpleSAML/Auth/State.php on line 295
  15. $state is returned
    in lib/SimpleSAML/Auth/State.php on line 319
  16. SimpleSAML\Auth\State::loadState($authStateId, SimpleSAML\Module\multiauth\Auth\Source\MultiAuth::STAGEID) is assigned to $state
    in modules/multiauth/www/selectsource.php on line 20
  17. $state['multiauth:preselect'] is assigned to $source
    in modules/multiauth/www/selectsource.php on line 49
  18. MultiAuth::delegateAuthentication() is called
    in modules/multiauth/www/selectsource.php on line 50
  19. Enters via parameter $authId
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 186
  20. Session::setData() is called
    in modules/multiauth/lib/Auth/Source/MultiAuth.php on line 211
  21. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  22. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  23. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  24. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  25. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  26. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  5. Path: Read tainted data from array, and $_SERVER['HTTP_HOST'] is assigned to $current in lib/SimpleSAML/Utils/HTTP.php on line 64
  1. Read tainted data from array, and $_SERVER['HTTP_HOST'] is assigned to $current
    in lib/SimpleSAML/Utils/HTTP.php on line 64
  2. $current is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 80
  3. self::getServerHost() is assigned to $hostname
    in lib/SimpleSAML/Utils/HTTP.php on line 853
  4. $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI'] is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 856
  5. SimpleSAML\Utils\HTTP::getSelfURL() is assigned to $url
    in lib/SimpleSAML/Error/NotFound.php on line 36
  6. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  7. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  8. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  9. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  10. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpass.php on line 87
  11. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpass.php on line 89
  12. State::saveState() is called
    in modules/core/www/loginuserpass.php on line 93
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  14. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  15. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  16. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  17. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  18. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  19. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  20. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  21. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  6. Path: Read from $_REQUEST, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called in www/saml2/idp/SingleLogoutService.php on line 20
  1. Read from $_REQUEST, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called
    in www/saml2/idp/SingleLogoutService.php on line 20
  2. Enters via parameter $url
    in lib/SimpleSAML/IdP.php on line 548
  3. array('Responder' => array('\SimpleSAML\IdP', 'finishLogoutRedirect'), 'core:Logout:URL' => $url) is assigned to $state
    in lib/SimpleSAML/IdP.php on line 552
  4. IdP::handleLogoutRequest() is called
    in lib/SimpleSAML/IdP.php on line 557
  5. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 484
  6. $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 489
  7. IFrameLogoutHandler::startLogout() is called
    in lib/SimpleSAML/IdP.php on line 506
  8. Enters via parameter $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 47
  9. $associations is assigned to $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 62
  10. State::saveState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 76
  11. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  12. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  13. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  14. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  15. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  16. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  17. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  18. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  19. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  7. Path: Read tainted data from array, and Data is passed through substr(), and self::getBaseURL() . $url_path . substr($_SERVER['REQUEST_URI'], $uri_pos + strlen($url_path)) is returned in lib/SimpleSAML/Utils/HTTP.php on line 859
  1. Read tainted data from array, and Data is passed through substr(), and self::getBaseURL() . $url_path . substr($_SERVER['REQUEST_URI'], $uri_pos + strlen($url_path)) is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 859
  2. SimpleSAML\Utils\HTTP::getSelfURL() is assigned to $url
    in lib/SimpleSAML/Error/NotFound.php on line 36
  3. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  4. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  5. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  6. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  7. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpass.php on line 87
  8. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpass.php on line 89
  9. State::saveState() is called
    in modules/core/www/loginuserpass.php on line 93
  10. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  11. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  12. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  13. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  14. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  15. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  16. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  17. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  18. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  8. Path: Read from $_REQUEST, and (string)$_REQUEST['RelayState'] is assigned to $relayState in modules/core/www/idp/logout-iframe-post.php on line 16
  1. Read from $_REQUEST, and (string)$_REQUEST['RelayState'] is assigned to $relayState
    in modules/core/www/idp/logout-iframe-post.php on line 16
  2. Message::setRelayState() is called
    in modules/core/www/idp/logout-iframe-post.php on line 58
  3. Enters via parameter $relayState
    in vendor/simplesamlphp/saml2/src/SAML2/Message.php on line 439
  4. $relayState is assigned to property LogoutRequest::$relayState
    in vendor/simplesamlphp/saml2/src/SAML2/Message.php on line 443
  5. Read from property LogoutRequest::$relayState, and $this->relayState is returned
    in vendor/simplesamlphp/saml2/src/SAML2/Message.php on line 429
  6. array('Responder' => array('\SimpleSAML\Module\saml\IdP\SAML2', 'sendLogoutResponse'), 'saml:SPEntityId' => $spEntityId, 'saml:RelayState' => $message->getRelayState(), 'saml:RequestId' => $message->getId()) is assigned to $state
    in modules/saml/lib/IdP/SAML2.php on line 663
  7. IdP::handleLogoutRequest() is called
    in modules/saml/lib/IdP/SAML2.php on line 671
  8. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 484
  9. $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 489
  10. IFrameLogoutHandler::startLogout() is called
    in lib/SimpleSAML/IdP.php on line 506
  11. Enters via parameter $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 47
  12. State::saveState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 76
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  14. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  15. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  16. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  17. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  18. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  19. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  20. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  21. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  9. Path: Read from $_REQUEST, and (string)$_REQUEST['idp'] is assigned to $idp in modules/core/www/idp/logout-iframe-post.php on line 6
  1. Read from $_REQUEST, and (string)$_REQUEST['idp'] is assigned to $idp
    in modules/core/www/idp/logout-iframe-post.php on line 6
  2. IdP::getById() is called
    in modules/core/www/idp/logout-iframe-post.php on line 7
  3. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 131
  4. IdP::__construct() is called
    in lib/SimpleSAML/IdP.php on line 139
  5. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 69
  6. $id is assigned to property IdP::$id
    in lib/SimpleSAML/IdP.php on line 71
  7. Read from property IdP::$id, and $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 489
  8. State::saveState() is called
    in lib/SimpleSAML/IdP.php on line 499
  9. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  10. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  11. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  12. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  13. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  14. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  15. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  16. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  17. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  10. Path: Session::addAssociation() is called in lib/SimpleSAML/IdP.php on line 228
  1. Session::addAssociation() is called
    in lib/SimpleSAML/IdP.php on line 228
  2. Enters via parameter $association
    in lib/SimpleSAML/Session.php on line 1052
  3. $association is assigned to property Session::$associations
    in lib/SimpleSAML/Session.php on line 1066
  4. Read from property Session::$associations, and $this->associations[$idp] is returned
    in lib/SimpleSAML/Session.php on line 1103
  5. $session->getAssociations($this->associationGroup) is returned
    in lib/SimpleSAML/IdP.php on line 240
  6. $this->idp->getAssociations() is assigned to $associations
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 51
  7. $associations is assigned to $association
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 57
  8. IdP::getByState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 58
  9. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 152
  10. IdP::getById() is called
    in lib/SimpleSAML/IdP.php on line 156
  11. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 131
  12. IdP::__construct() is called
    in lib/SimpleSAML/IdP.php on line 139
  13. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 69
  14. $id is assigned to property IdP::$id
    in lib/SimpleSAML/IdP.php on line 71
  15. Read from property IdP::$id, and $this->id is assigned to $association
    in lib/SimpleSAML/IdP.php on line 225
  16. Session::addAssociation() is called
    in lib/SimpleSAML/IdP.php on line 228
  17. Enters via parameter $association
    in lib/SimpleSAML/Session.php on line 1052
  18. $association is assigned to property Session::$associations
    in lib/SimpleSAML/Session.php on line 1066
  19. Read from property Session::$associations, and $this->associations[$idp] is returned
    in lib/SimpleSAML/Session.php on line 1103
  20. $session->getAssociations($this->associationGroup) is returned
    in lib/SimpleSAML/IdP.php on line 240
  21. $this->idp->getAssociations() is assigned to $associations
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 51
  22. $associations is assigned to $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 62
  23. State::saveState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 76
  24. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  25. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  26. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  27. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  28. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  29. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  30. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  31. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  32. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  11. Path: ConfigurationError::__construct() is called in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 64
  1. ConfigurationError::__construct() is called
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 64
  2. Enters via parameter $reason
    in lib/SimpleSAML/Error/ConfigurationError.php on line 38
  3. $reason is assigned to property ConfigurationError::$reason
    in lib/SimpleSAML/Error/ConfigurationError.php on line 52
  4. Read from property ConfigurationError::$reason, and $this->reason is returned
    in lib/SimpleSAML/Error/ConfigurationError.php on line 66
  5. $exception->getReason() is assigned to $reason
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 78
  6. CriticalConfigurationError::__construct() is called
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 83
  7. Enters via parameter $reason
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 52
  8. ConfigurationError::__construct() is called
    in lib/SimpleSAML/Error/CriticalConfigurationError.php on line 64
  9. Enters via parameter $reason
    in lib/SimpleSAML/Error/ConfigurationError.php on line 38
  10. $reason is assigned to $params
    in lib/SimpleSAML/Error/ConfigurationError.php on line 49
  11. Error::__construct() is called
    in lib/SimpleSAML/Error/ConfigurationError.php on line 54
  12. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  13. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  14. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  15. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpassorg.php on line 112
  16. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpassorg.php on line 114
  17. State::saveState() is called
    in modules/core/www/loginuserpassorg.php on line 119
  18. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  19. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  20. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  21. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  22. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  23. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  24. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  25. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  26. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  12. Path: Read from $_GET, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called in www/saml2/idp/initSLO.php on line 15
  1. Read from $_GET, and Data is passed through checkURLAllowed(), and IdP::doLogoutRedirect() is called
    in www/saml2/idp/initSLO.php on line 15
  2. Enters via parameter $url
    in lib/SimpleSAML/IdP.php on line 548
  3. array('Responder' => array('\SimpleSAML\IdP', 'finishLogoutRedirect'), 'core:Logout:URL' => $url) is assigned to $state
    in lib/SimpleSAML/IdP.php on line 552
  4. IdP::handleLogoutRequest() is called
    in lib/SimpleSAML/IdP.php on line 557
  5. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 484
  6. $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 489
  7. IFrameLogoutHandler::startLogout() is called
    in lib/SimpleSAML/IdP.php on line 506
  8. Enters via parameter $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 47
  9. $associations is assigned to $state
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 62
  10. State::saveState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 76
  11. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  12. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  13. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  14. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  15. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  16. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  17. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  18. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  19. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  13. Path: ParameterBag::get() returns request data in vendor/symfony/http-foundation/ParameterBag.php on line 82
  1. ParameterBag::get() returns request data
    in vendor/symfony/http-foundation/ParameterBag.php on line 82
  2. $request->server->get('PATH_INFO') is assigned to $url
    in lib/SimpleSAML/Module.php on line 138
  3. Data is passed through substr(), and substr($url, 1) is assigned to $module
    in lib/SimpleSAML/Module.php on line 149
  4. NotFound::__construct() is called
    in lib/SimpleSAML/Module.php on line 157
  5. Enters via parameter $reason
    in lib/SimpleSAML/Error/NotFound.php on line 32
  6. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  7. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  8. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  9. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  10. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpass.php on line 87
  11. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpass.php on line 89
  12. State::saveState() is called
    in modules/core/www/loginuserpass.php on line 93
  13. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  14. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  15. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  16. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  17. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  18. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  19. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  20. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  21. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  14. Path: Read tainted data from array, and $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI'] is returned in lib/SimpleSAML/Utils/HTTP.php on line 856
  1. Read tainted data from array, and $protocol . '://' . $hostname . $port . $_SERVER['REQUEST_URI'] is returned
    in lib/SimpleSAML/Utils/HTTP.php on line 856
  2. SimpleSAML\Utils\HTTP::getSelfURL() is assigned to $url
    in lib/SimpleSAML/Error/NotFound.php on line 36
  3. Error::__construct() is called
    in lib/SimpleSAML/Error/NotFound.php on line 42
  4. Enters via parameter $errorCode
    in lib/SimpleSAML/Error/Error.php on line 81
  5. $errorCode is assigned to property Error::$errorCode
    in lib/SimpleSAML/Error/Error.php on line 91
  6. Read from property Error::$errorCode, and $this->errorCode is returned
    in lib/SimpleSAML/Error/Error.php on line 125
  7. $e->getErrorCode() is assigned to $errorCode
    in modules/core/www/loginuserpass.php on line 87
  8. array('code' => $errorCode, 'params' => $errorParams) is assigned to $state
    in modules/core/www/loginuserpass.php on line 89
  9. State::saveState() is called
    in modules/core/www/loginuserpass.php on line 93
  10. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  11. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  12. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  13. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  14. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  15. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  16. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  17. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  18. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500
  15. Path: IdP::__construct() is called in lib/SimpleSAML/IdP.php on line 139
  1. IdP::__construct() is called
    in lib/SimpleSAML/IdP.php on line 139
  2. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 69
  3. $id is assigned to property IdP::$id
    in lib/SimpleSAML/IdP.php on line 71
  4. Read from property IdP::$id, and $this->id is assigned to $association
    in lib/SimpleSAML/IdP.php on line 225
  5. Session::addAssociation() is called
    in lib/SimpleSAML/IdP.php on line 228
  6. Enters via parameter $association
    in lib/SimpleSAML/Session.php on line 1052
  7. $association is assigned to property Session::$associations
    in lib/SimpleSAML/Session.php on line 1066
  8. Read from property Session::$associations, and $this->associations[$idp] is returned
    in lib/SimpleSAML/Session.php on line 1103
  9. $session->getAssociations($this->associationGroup) is returned
    in lib/SimpleSAML/IdP.php on line 240
  10. $this->idp->getAssociations() is assigned to $associations
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 51
  11. $associations is assigned to $association
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 57
  12. IdP::getByState() is called
    in lib/SimpleSAML/IdP/IFrameLogoutHandler.php on line 58
  13. Enters via parameter $state
    in lib/SimpleSAML/IdP.php on line 152
  14. IdP::getById() is called
    in lib/SimpleSAML/IdP.php on line 156
  15. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 131
  16. IdP::__construct() is called
    in lib/SimpleSAML/IdP.php on line 139
  17. Enters via parameter $id
    in lib/SimpleSAML/IdP.php on line 69
  18. $id is assigned to property IdP::$id
    in lib/SimpleSAML/IdP.php on line 71
  19. Read from property IdP::$id, and $this->id is assigned to $state
    in lib/SimpleSAML/IdP.php on line 489
  20. State::saveState() is called
    in lib/SimpleSAML/IdP.php on line 499
  21. Enters via parameter $state
    in lib/SimpleSAML/Auth/State.php on line 205
  22. Data is passed through serialize(), and serialize($state) is assigned to $serializedState
    in lib/SimpleSAML/Auth/State.php on line 218
  23. Session::setData() is called
    in lib/SimpleSAML/Auth/State.php on line 220
  24. Enters via parameter $data
    in lib/SimpleSAML/Session.php on line 888
  25. array('expires' => $expires, 'timeout' => $timeout, 'data' => $data) is assigned to $dataInfo
    in lib/SimpleSAML/Session.php on line 913
  26. $dataInfo is assigned to property Session::$dataStore
    in lib/SimpleSAML/Session.php on line 923
  27. Read from property Session::$dataStore, and $this->dataStore[$type][$id]['data'] is returned
    in lib/SimpleSAML/Session.php on line 980
  28. $session->getData('\SimpleSAML\Auth\Source.LogoutCallbacks', $id) is assigned to $data
    in lib/SimpleSAML/Auth/Source.php on line 488
  29. $data['callback'] is assigned to $callback
    in lib/SimpleSAML/Auth/Source.php on line 500

General Strategies to prevent injection

In general, it is advisable to prevent any user-data to reach this point. This can be done by white-listing certain values:

if ( ! in_array($value, array('this-is-allowed', 'and-this-too'), true)) {
    throw new \InvalidArgumentException('This input is not allowed.');
}

For numeric data, we recommend to explicitly cast the data:

$sanitized = (integer) $tainted;
Loading history...
505
    }
506
507
508
    /**
509
     * Retrieve list of authentication sources.
510
     *
511
     * @return array The id of all authentication sources.
512
     */
513
    public static function getSources()
514
    {
515
        $config = Configuration::getOptionalConfig('authsources.php');
516
517
        return $config->getOptions();
518
    }
519
520
521
    /**
522
     * Make sure that the first element of an auth source is its identifier.
523
     *
524
     * @param array $source An array with the auth source configuration.
525
     * @param string $id The auth source identifier.
526
     *
527
     * @throws \Exception If the first element of $source is not an identifier for the auth source.
528
     * @return void
529
     */
530
    protected static function validateSource($source, $id)
531
    {
532
        if (!array_key_exists(0, $source) || !is_string($source[0])) {
533
            throw new \Exception(
534
                'Invalid authentication source \'' . $id .
535
                '\': First element must be a string which identifies the authentication source.'
536
            );
537
        }
538
    }
539
}
540