You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Spoofing the OpenID server (by for example, hosting your own), and redirecting to the /complete/ endpoint authenticates the user. There is no check on claimed_id, identity and op_endpoint.
What are the steps to reproduce this issue?
Try to auth through Steam
Authenticate with your Steam account, capture the redirect url (.../complete/steam...)
Replace steamcommunity.com in the URL with your own OpenID host
You will be authenticated
You can let your own OpenID instance return any steam id you want to authenticate as that steam id/user. I have tested this, and could successfully authenticate as any steam user.
Any other comments?
I fixed this issue locally by implementing the following and adding it to the auth pipeline, I am not 100% sure if this covers the bug fully.
The Steam backend was intentionally made stateless in d975841, maybe that no longer applies these days. Can you try removing the consumer method from SteamOpenId and chech whether it works well then?
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
I am using the latest version of social-core and social-app-django.
Expected behaviour
Steam OpenID redirects from a different server than 'https://steamcommunity.com/openid/login' should not get authenticated.
Actual behaviour
Spoofing the OpenID server (by for example, hosting your own), and redirecting to the /complete/ endpoint authenticates the user. There is no check on claimed_id, identity and op_endpoint.
What are the steps to reproduce this issue?
You can let your own OpenID instance return any steam id you want to authenticate as that steam id/user. I have tested this, and could successfully authenticate as any steam user.
Any other comments?
I fixed this issue locally by implementing the following and adding it to the auth pipeline, I am not 100% sure if this covers the bug fully.
The text was updated successfully, but these errors were encountered: