🇰🇷 한글 설명
Parse Server의 OAuth2 인증 어댑터에서 useridField 옵션이 설정되지 않았을 때 발생하는 취약점입니다. 공격자가 동일한 제공자의 유효한 OAuth2 토큰을 사용하면 다른 사용자로 위장하여 인증을 통과할 수 있습니다. 이 문제는 9.5.2-alpha.9 및 8.6.22 버전 이전에서 발생합니다.
💡 쉬운 설명
로그인할 때 '이 토큰이 누구의 것인지' 확인하는 절차가 빠져 있는 상태입니다. 그래서 다른 사람의 유효한 입장권만 있으면 누구로든 변장해서 들어올 수 있는 보안 구멍이 있습니다.
🇺🇸 원문 (English)
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to 9.5.2-alpha.9. and 8.6.22, the OAuth2 authentication adapter, when configured without the useridField option, only verifies that a token is active via the provider's token introspection endpoint, but does not verify that the token belongs to the user identified by authData.id. An attacker with any valid OAuth2 token from the same provider can authenticate as any other user. This affects any Parse Server deployment that uses the generic OAuth2 authentication adapter (configured with oauth2: true) without setting the useridField option. This vulnerability is fixed in 9.5.2-alpha.9. and 8.6.22.
📍 영향받는 시스템
Parse Server 9.5.2-alpha.9 및 8.6.22 미만 버전 (oauth2: true 설정 시)
⚔️ 공격 벡터
동일한 OAuth2 제공자의 유효한 토큰을 사용하여 다른 사용자의 ID로 인증 시도
🛡️ 대응 방법
Parse Server를 9.5.2-alpha.9 또는 8.6.22 이상 버전으로 업데이트하거나 useridField 옵션을 명시적으로 설정
🔧 검증 코드
출력된 버전이 9.5.2-alpha.9 또는 8.6.22보다 낮은지 확인하여 취약 여부를 판단합니다.
npm list parse-server | grep -E 'parse-server@([0-9]+\.[0-9]+\.[0-9]+)'