🇰🇷 한글 설명
Tinyauth의 OAuth 서비스 구현체들이 PKCE 검증자와 액세스 토큰을 싱글톤 인스턴스의 가변 필드에 저장하는 취약점이 있습니다. 이로 인해 두 사용자가 동시에 로그인을 시도할 때 경쟁 상태(Race Condition)가 발생하여, 한 사용자가 다른 사용자의 신원으로 세션을 획득할 수 있습니다.
💡 쉬운 설명
여러 사람이 동시에 로그인할 때 시스템이 사용자 정보를 서로 헷갈려 하는 문제입니다. 이로 인해 내 계정이 아닌 다른 사람의 계정으로 로그인될 위험이 있습니다.
🇺🇸 원문 (English)
Tinyauth is an authentication and authorization server. Prior to version 5.0.5, all three OAuth service implementations (GenericOAuthService, GithubOAuthService, GoogleOAuthService) store PKCE verifiers and access tokens as mutable struct fields on singleton instances shared across all concurrent requests. When two users initiate OAuth login for the same provider concurrently, a race condition between VerifyCode() and Userinfo() causes one user to receive a session with the other user's identity. This issue has been patched in version 5.0.5.
📍 영향받는 시스템
Tinyauth version 5.0.5 미만
⚔️ 공격 벡터
동일한 OAuth 제공자를 통해 여러 사용자가 동시에 로그인 요청을 보내 경쟁 상태를 유발
🛡️ 대응 방법
Tinyauth를 5.0.5 버전 이상으로 업데이트
🔧 검증 코드
출력된 버전 숫자가 5.0.5보다 낮으면 취약한 상태입니다.
tinyauth version | grep -E 'v[0-9.]+'