GHSA-x7qq-23vw-7pfg: CSRF
Impact
The LoginRadius backend did not validate OAuth state during the authentication flow.
Applications using this backend were vulnerable to login CSRF. An attacker could cause a victim's browser session to complete authentication using an attacker-controlled LoginRadius token, making the victim authenticated as the attacker's LoginRadius identity.
The issue affects only applications using the LoginRadius backend.
Patches
The issue has been fixed by enabling callback state validation for the LoginRadius backend.
Users should upgrade to a patched version.
Fix:
https://github.com/python-social-auth/social-core/pull/1808
Workarounds
Applications that cannot upgrade immediately should disable the LoginRadius backend by removing it from SOCIALAUTHAUTHENTICATIONBACKENDS.
There is no complete workaround while continuing to use the vulnerable backend.
Credits
Reported through GitHub private vulnerability reporting by Liyi Zhou, Ziyue Wang, Strick, Maurice, and Chenchen Yu from the University of Sydney security research team.
Reporter references:
https://lzhou1110.github.io/ https://zyy0530.github.io/ https://str1ckl4nd.github.io/ https://maurice.busystar.org/ https://7thparkk.github.io/
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
pip/social-auth-coreto a version that resolves this vulnerability.Fixed in 5.0.0 - Configuration
Disable the LoginRadius backend by removing it from SOCIAL_AUTH_AUTHENTICATION_BACKENDS.
LoginRadius backend SOCIAL_AUTH_AUTHENTICATION_BACKENDS = Remove the LoginRadius backend
Event History
Frequently Asked Questions
Which deployments are affected?
Only applications configured to use the LoginRadius authentication backend are affected. Applications using social-auth-core without that backend are not described as vulnerable.
What does an attacker need to exploit this issue?
The attacker can trigger a login CSRF flow that causes a victim's browser session to complete authentication with an attacker-controlled LoginRadius token. The provided data indicates user interaction is required.
What should teams do if they cannot upgrade immediately?
Disable the LoginRadius backend by removing it from SOCIAL_AUTH_AUTHENTICATION_BACKENDS. There is no complete workaround for applications that continue using the vulnerable backend.
What security impact can exploitation have?
A victim can become authenticated to the application as the attacker's LoginRadius identity. The supplied vector rates the impact as integrity-only, with no stated confidentiality or availability impact.