🇰🇷 한글 설명
Parse Server의 특정 버전에서 설치 기록의 디바이스 토큰 중복 제거 로직이 클라이언트가 제공한 필드 타입을 검증하지 않는 취약점이 발견되었습니다. 인증되지 않은 원격 공격자가 공개된 애플리케이션 ID를 이용해 쿼리 연산자를 주입함으로써, 애플리케이션 내의 모든 디바이스 등록 정보를 삭제할 수 있습니다.
💡 쉬운 설명
해커가 특수한 명령어를 보내 앱에 등록된 모든 기기 정보를 강제로 삭제할 수 있는 보안 결함입니다. 이 공격을 받으면 사용자들에게 푸시 알림을 보낼 수 없게 되며, 모든 사용자가 앱을 다시 등록해야 하는 불편이 발생합니다.
🇺🇸 원문 (English)
Parse Server is an open source backend server. In versions prior to 8.6.90 and in versions from 9.0.0 prior to 9.10.1-alpha.9, the device token deduplication logic for installation records does not validate the type of client-supplied installation fields before using them to build database queries. An unauthenticated remote attacker who knows only the public application ID can submit non-string values in these fields to inject query operators, causing the deduplication cleanup — which runs with elevated privileges before class-level permissions are evaluated — to delete every device registration in the application or an attacker-chosen subset of them. No account, session token, master key, or user interaction is required. Deleted registrations cannot be recovered on the server, so push notifications cannot be delivered until every client re-registers. Any deployment that exposes the REST API to clients and uses push notifications is affected in its default configuration. Versions 8.6.90 and 9.10.1-alpha.9 fix the issue by rejecting non-string values with a client error and by scoping the deduplication cleanup to the calling application. No workaround other than upgrading is available.
📍 영향받는 시스템
Parse Server 8.6.90 미만 버전 및 9.0.0 이상 9.10.1-alpha.9 미만 버전
⚔️ 공격 벡터
인증 없이 공개된 애플리케이션 ID를 사용하여 REST API를 통해 비정상적인 데이터 타입(쿼리 연산자)을 전송
🛡️ 대응 방법
Parse Server를 8.6.90 또는 9.10.1-alpha.9 이상의 최신 버전으로 즉시 업그레이드
🔧 검증 코드
명령어 결과에 나타나는 버전이 취약한 범위(8.6.90 미만 또는 9.10.1-alpha.9 미만)에 해당하면 취약한 상태입니다.
npm list parse-server | grep -E 'parse-server@([8]\.[0-9]\.[0-9]{2,}|9\.[0-9]\.[0-9]-alpha\.[0-9])'
📊 CVSS Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
💻 영향받는 소프트웨어
IBM WebSphere Application Server