🇰🇷 한글 설명
Python Social Auth 라이브러리의 5.4.1 버전 이전에서 MySQL/MariaDB의 대소문자 구분이 없는 기본 collation으로 인해 서드파티 인증 사용자 ID가 제대로 구분되지 않습니다. 이로 인해 다른 사용자 ID들이 같은 것으로 인식되어 인증 우회가 가능할 수 있습니다. 버전 5.4.1 업그레이드 또는 영향받는 필드의 collation 변경으로 해결됩니다.
💡 쉬운 설명
로그인 시스템이 사용자 이름의 대소문자를 구분하지 못하는 문제입니다. 예를 들어 'User'와 'user'를 다른 사람으로 봐야 하는데 같은 사람으로 인식해서 다른 계정으로 접근할 수 있게 됩니다.
🇺🇸 원문 (English)
Python Social Auth is a social authentication/registration mechanism. Prior to version 5.4.1, due to default case-insensitive collation in MySQL or MariaDB databases, third-party authentication user IDs are not case-sensitive and could cause different IDs to match. This issue has been addressed by a fix released in version 5.4.1. An immediate workaround would be to change collation of the affected field.
📍 영향받는 시스템
Python Social Auth < 5.4.1 (MySQL/MariaDB 기반 시스템)
⚔️ 공격 벡터
MySQL/MariaDB 데이터베이스의 대소문자 구분이 없는 collation을 이용해 다른 사용자 ID로 인증하여 계정 탈취
🛡️ 대응 방법
Python Social Auth를 5.4.1 이상으로 업그레이드하거나 영향받는 필드의 collation을 대소문자 구분 collation으로 변경
🔧 검증 코드
버전이 5.4.1 이상이면 안전하고, 5.4.1 미만이면 업그레이드 필요
pip show python-social-auth | grep Version