🇰🇷 한글 설명
Parse Server 8.6.112 미만 및 9.0.0 ~ 9.10.6-alpha.4 미만 버전에는 세션 업그레이드 엔드포인트의 권한 우회 취약점이 있습니다. _Session 클래스의 create 권한을 확인하지 않아, 유효한 세션 토큰을 가진 공격자가 새로운 세션을 생성할 수 있습니다. 이렇게 생성된 세션은 원래 세션이 로그아웃된 후에도 유지됩니다.
💡 쉬운 설명
로그인 정보가 담긴 세션 토큰을 가진 사람이 이를 이용해 추가 로그인 세션을 만들 수 있는 문제입니다. 원래 세션을 로그아웃해도 만들어진 세션은 계속 살아남습니다.
🇺🇸 원문 (English)
Parse Server before 8.6.112 and 9.0.0 before 9.10.6-alpha.4 contains an authorization bypass in the session upgrade endpoint, which creates a new session for any valid session token without enforcing the _Session class create class-level permission. Attackers holding a user's session token can send an already revocable token to /upgradeToRevocableSession to obtain additional sessions with fresh expiration that persist after the original session is logged out.
📍 영향받는 시스템
Parse Server 8.6.112 미만, 9.0.0 이상 9.10.6-alpha.4 미만 버전 (npm parse-server 패키지)
⚔️ 공격 벡터
탈취한 유효 세션 토큰을 /upgradeToRevocableSession 엔드포인트에 전송하여 새로운 만료 기간을 가진 추가 세션을 발급받음
🛡️ 대응 방법
parse-server를 8.6.112 이상 또는 9.10.6-alpha.4 이상으로 업그레이드하고, 의심되는 세션을 무효화
🔧 검증 코드
출력된 버전이 8.6.112 이상이거나 9.10.6-alpha.4 이상이면 패치된 것이며, 그 외 버전이면 취약한 상태입니다.
npm list parse-server 2>/dev/null | grep parse-server