🇰🇷 한글 설명
Parse Server의 MFA SMS OTP 로그인 경로에서 경합 조건 취약점으로, 동일한 OTP를 사용한 두 개의 동시 /login 요청이 모두 성공하여 두 개의 유효한 세션 토큰을 획득할 수 있습니다. OTP의 일회용 특성이 깨지며, 공격자는 피해자의 비밀번호와 SMS OTP를 모두 알아야 하고 정당한 요청과 경합해야 하므로 실제 공격 표면은 제한적입니다.
💡 쉬운 설명
Parse Server의 2단계 인증(SMS)에서 보안 코드를 여러 번 사용할 수 있는 경합 조건 버그입니다. 공격자가 비밀번호와 일회용 코드를 모두 알면, 정확한 타이밍에 동시로 로그인해 두 개의 유효한 계정 접근을 모두 성공시킬 수 있습니다.
🇺🇸 원문 (English)
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to 8.6.76 and 9.9.0-alpha.2, a race condition in the MFA SMS one-time password (OTP) login path allows two concurrent /login requests carrying the same OTP to both succeed and both receive valid session tokens, breaking the single-use property of the OTP. The vulnerability requires the attacker to already possess the victim's password and intercept the active SMS OTP (e.g. via SIM swap, network mirror, or phishing relay) and to race the legitimate login request, so the practical attack surface is narrow. This vulnerability is fixed in 8.6.76 and 9.9.0-alpha.2.
📍 영향받는 시스템
Parse Server 8.6.76 미만, 9.x 버전 9.9.0-alpha.2 미만
⚔️ 공격 벡터
공격자가 피해자의 비밀번호와 SMS OTP를 보유하고 두 개의 /login 요청을 동시에 전송
🛡️ 대응 방법
Parse Server를 8.6.76 이상 또는 9.9.0-alpha.2 이상으로 업그레이드
🔧 검증 코드
설치된 Parse Server 버전이 8.6.76 이상 또는 9.9.0-alpha.2 이상이면 취약점 패치됨, 그 미만이면 업그레이드 필요
npm list parse-server 2>/dev/null | grep parse-server | awk '{print $2}' | head -1