🇰🇷 한글 설명
Parse Server의 특정 버전에서 인증되지 않은 공격자가 사용자 계정을 탈취할 수 있는 취약점이 발견되었습니다. 익명 인증을 사용하는 환경에서 조작된 로그인 요청을 보내면 서버가 정확한 일치 대신 패턴 매칭 쿼리를 수행하여 기존 사용자의 세션 토큰을 획득할 수 있습니다. 이 문제는 MongoDB와 PostgreSQL 백엔드 모두에 영향을 미칩니다.
💡 쉬운 설명
로그인할 때 아이디를 정확히 입력하는 대신 특수 기호를 섞어 보내면, 시스템이 이를 '모든 사용자' 혹은 '특정 사용자'로 잘못 인식하여 남의 계정으로 접속하게 되는 문제입니다. 익명 로그인 기능이 켜져 있다면 누구나 다른 사람의 계정을 뺏을 수 있어 매우 위험합니다.
🇺🇸 원문 (English)
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to 9.6.0-alpha.12 and 8.6.38, an unauthenticated attacker can take over any user account that was created with an authentication provider that does not validate the format of the user identifier (e.g. anonymous authentication). By sending a crafted login request, the attacker can cause the server to perform a pattern-matching query instead of an exact-match lookup, allowing the attacker to match an existing user and obtain a valid session token for that user's account. Both MongoDB and PostgreSQL database backends are affected. Any Parse Server deployment that allows anonymous authentication (enabled by default) is vulnerable. This vulnerability is fixed in 9.6.0-alpha.12 and 8.6.38.
📍 영향받는 시스템
Parse Server 9.6.0-alpha.12 및 8.6.38 미만 버전 (MongoDB/PostgreSQL 사용 시)
⚔️ 공격 벡터
조작된 로그인 요청을 통한 패턴 매칭 쿼리 유도 및 세션 토큰 탈취
🛡️ 대응 방법
Parse Server를 9.6.0-alpha.12 또는 8.6.38 이상 버전으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 취약한 버전 번호가 출력되면 해당 시스템은 보안 업데이트가 필요한 상태입니다.
npm list parse-server | grep -E 'parse-server@([0-8]\.[0-6]\.[0-3][0-8]|9\.6\.0-alpha\.1[0-1])'