social-auth-core Vulnerable to Account Takeover via Identity Binding Flaw in Vend Backend
What fixes it
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
Impact
The Vend OAuth2 backend used only the numeric Vend user_id as the social-auth UID.
When multiple Vend shops authenticate through the same application, users from different shops with the same internal Vend user ID could collide in the social-auth association table. A user from one shop could then be authenticated as the local account previously associated with the same numeric user ID from another shop.
The issue affects applications using the Vend OAuth2 backend with more than one Vend shop.
Patches
The issue has been fixed by scoping Vend social-auth UIDs by shop.
Users should upgrade to a patched version.
Fix:
- https://github.com/python-social-auth/social-core/pull/1795
Workarounds
Applications that cannot upgrade immediately should restrict the Vend OAuth2 backend to a single trusted Vend shop.
If Vend authentication is not required, the Vend backend can also be disabled by removing it from SOCIAL_AUTH_AUTHENTICATION_BACKENDS.
There is no complete workaround while continuing to allow authentication from multiple Vend shops with 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/
Text from GitHub Advisory Database
Affected versions 53
- social-auth-core, pip< 5.0.0GitHub
- social-coreaffected: < 5.0.0CVE List
- social-auth-core, PyPIfrom first release, fixed in 5.0.0OSV
- social-auth-core, PyPI0.0.1OSV
- social-auth-core, PyPI0.1.0OSV
- social-auth-core, PyPI0.2.0OSV
- social-auth-core, PyPI0.2.1OSV
- social-auth-core, PyPI1.0.0OSV
- social-auth-core, PyPI1.0.1OSV
- social-auth-core, PyPI1.1.0OSV
- social-auth-core, PyPI1.2.0OSV
- social-auth-core, PyPI1.3.0OSV
- social-auth-core, PyPI1.4.0OSV
- social-auth-core, PyPI1.5.0OSV
- social-auth-core, PyPI1.6.0OSV
- social-auth-core, PyPI1.7.0OSV
- social-auth-core, PyPI2.0.0OSV
- social-auth-core, PyPI3.0.0OSV
- social-auth-core, PyPI3.1.0OSV
- social-auth-core, PyPI3.2.0OSV
- social-auth-core, PyPI3.3.0OSV
- social-auth-core, PyPI3.3.1OSV
- social-auth-core, PyPI3.3.2OSV
- social-auth-core, PyPI3.3.3OSV
- social-auth-core, PyPI3.4.0OSV
- social-auth-core, PyPI4.0.2OSV
- social-auth-core, PyPI4.0.3OSV
- social-auth-core, PyPI4.1.0OSV
- social-auth-core, PyPI4.2.0OSV
- social-auth-core, PyPI4.3.0OSV
- social-auth-core, PyPI4.4.0OSV
- social-auth-core, PyPI4.4.1OSV
- social-auth-core, PyPI4.4.2OSV
- social-auth-core, PyPI4.5.0OSV
- social-auth-core, PyPI4.5.1OSV
- social-auth-core, PyPI4.5.2OSV
- social-auth-core, PyPI4.5.3OSV
- social-auth-core, PyPI4.5.4OSV
- social-auth-core, PyPI4.5.5OSV
- social-auth-core, PyPI4.5.6OSV
- social-auth-core, PyPI4.6.0OSV
- social-auth-core, PyPI4.6.1OSV
- social-auth-core, PyPI4.7.0OSV
- social-auth-core, PyPI4.8.0OSV
- social-auth-core, PyPI4.8.1OSV
- social-auth-core, PyPI4.8.2OSV
- social-auth-core, PyPI4.8.3OSV
- social-auth-core, PyPI4.8.4OSV
- social-auth-core, PyPI4.8.5OSV
- social-auth-core, PyPI4.8.6OSV
- social-auth-core, PyPI4.8.7OSV
- social-auth-core, PyPI4.9.0OSV
- social-auth-core, PyPI4.9.1OSV
References 6
- github.com/python-social-auth/social-core/commit/dee7ad1785877afd355dd6860598823d2631b76eFixvia GitHub
- github.com/python-social-auth/social-core/releases/tag/5.0.0Fixvia GitHub
- github.com/python-social-auth/social-core/security/advisories/GHSA-fp7w-m676-w7gcAdvisoryvia CVE List
- github.com/advisories/GHSA-fp7w-m676-w7gcAdvisoryvia GitHub
- nvd.nist.gov/vuln/detail/CVE-2026-57176Referencevia GitHub
- github.com/python-social-auth/social-core/pull/1795Referencevia GitHub