GHSA-526j-582w-7fm9
Python Social Auth: Login CSRF in LINE backend (LineOAuth2) — missing OAuth state validation (incomplete fix of 5.0.0 campaign)
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| PyPI | social-auth-core | < 5.0.2 | 5.0.2 |
Details
As written in the advisory (Markdown source, shown as plain text).
### Impact
Applications using the LINE Login backend are vulnerable to login CSRF / forced authentication. An attacker can start a LINE authorization flow for an account they control and trick a victim into visiting the callback URL with the attacker’s authorization code. Because the LINE backend did not validate the returned OAuth state, the application could accept the forged callback and log the victim in as the attacker-controlled LINE account.
If account linking is enabled, the same flaw can allow an attacker to link their LINE identity to a victim’s existing authenticated account, creating a persistent unauthorized login path.
### Patches
* https://github.com/python-social-auth/social-core/pull/1829
### Workarounds
Only applications that enable the LINE backend are affected.
### Credits
Thanks to Ta Duc Thien and Duc Anh Nguyen for reproting this via GitHub.
References
External links from the advisory. They lead to third-party sites.
- https://github.com/python-social-auth/social-core/security/advisories/GHSA-526j-582w-7fm9
- https://github.com/python-social-auth/social-core/pull/1829
- https://github.com/python-social-auth/social-core/commit/5b3b90d07ebccc1f5b076445b27ea35ec059764b
- https://github.com/python-social-auth/social-core
- https://github.com/python-social-auth/social-core/releases/tag/5.0.2