[TYPO3-core] Access denied for old security bug

Helmut Hummel helmut.hummel at typo3.org
Wed Jun 19 20:15:58 CEST 2013


Hi!

Am 19.06.13 17:13, schrieb Christian Weiske:

>>> The fix: https://review.typo3.org/#/c/21501/
>>
>> Nice idea to do it this way, unfortunately, this would introduce a
>> severe security problem. Please read my comment in Gerrit.
>
> Could you please describe why you insist on verifying the OpenID URL
> before starting the OpenID login process?

I insist on security and clarity.

In regard of security, your approach[1] clearly wins ;)
It is not possible to log in with a different OpenID as specified in the 
backend user record. With Dmitrys approach[2] I can. It basically 
re-introduces the vulnerability we fixed before[3][4].


So why do I still dislike your patch?

1. It breaks a feature[5]
2. You claim your patch as bugfix, while OpenID auth with google works 
fine when using the https://profiles.google.com/<profileid> URL without 
any modification
3. Your patch introduces a different OpenID handling path 
(identifier_select) which coincidently works together with the 
implemented way (user claims id). These two paths should be clearly 
separated code wise
3a. There is no way I'm aware of to find out what ID to specify in the 
user record without debugging the OpenID response
3b. It stays unclear for users what to specify in the user record and 
what to specify in the login field
3c. If your statement "Another issue with google is that they return 
different OpenID identifiers for the same account for different OpenID 
consumer domains." is true (I could not verify it), such an approach 
needs use a truly unique identifier provided by the OP to identify the 
relation to a TYPO3 user
3d. Such unique identifier should be easily retrievable for end users or 
administrators and should be entered in a different field, not the 
claimed id field


So what I suggest is:

Implement identifier_select (for different providers) in a different 
extension or at least separated from other code in the extension.

Since there are even more cool things the OpenID protocol provides 
(Attribute exchange, check_immediate etc.) we could make the code of the 
openid extension modular so that extensions (or the core itself) can 
hook into to make all these things happen.

But mixing functionality does not seem right to me.

Hope that explains a bit my reasoning behind my voting of the current 
patches.

Kind regards,
Helmut



[1]https://review.typo3.org/21373
[2]https://review.typo3.org/21501
[3]http://typo3.org/teams/security/security-bulletins/typo3-core/typo3-sa-2010-001/
[4]https://git.typo3.org/Packages/TYPO3.CMS.git/commit/275af93acf617eee3b189b567289a58b70794c26
[5]https://git.typo3.org/Packages/TYPO3.CMS.git/commit/19ea7938331bc198848eef8740170f6318ab028c

-- 
Helmut Hummel
Release Manager TYPO3 6.0
TYPO3 Core Developer, TYPO3 Security Team Leader

TYPO3 .... inspiring people to share!
Get involved: typo3.org


More information about the TYPO3-team-core mailing list