🔍 CVE-2026-33163

6.5
CVSS Score
MEDIUM
2026-03-18
2026-06-17 10:37
✅ 완료

🇰🇷 한글 설명

Parse Server의 특정 버전에서 LiveQuery 이벤트 트리거 사용 시 보호된 필드와 인증 데이터가 모든 구독자에게 유출되는 취약점이 발견되었습니다. 이는 참조 분리 버그로 인해 민감한 데이터 필터링이 적용되지 않은 JSON 복사본이 클라이언트에 전송되면서 발생합니다.

💡 쉬운 설명

데이터를 숨겨두는 설정이 있어도 특정 기능을 사용하면 숨겨진 개인정보나 비밀번호 같은 중요한 정보가 다른 사용자들에게 그대로 노출될 수 있는 문제입니다. 시스템 내부에서 데이터를 복사하는 과정에서 보안 필터가 제대로 작동하지 않아 발생한 오류입니다.

🇺🇸 원문 (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.35 and 8.6.50, when a `Parse.Cloud.afterLiveQueryEvent` trigger is registered for a class, the LiveQuery server leaks protected fields and `authData` to all subscribers of that class. Fields configured as protected via Class-Level Permissions (`protectedFields`) are included in LiveQuery event payloads for all event types (create, update, delete, enter, leave). Any user with sufficient CLP permissions to subscribe to the affected class can receive protected field data of other users, including sensitive personal information and OAuth tokens from third-party authentication providers. The vulnerability was caused by a reference detachment bug. When an `afterEvent` trigger is registered, the LiveQuery server converts the event object to a `Parse.Object` for the trigger, then creates a new JSON copy via `toJSONwithObjects()`. The sensitive data filter was applied to the `Parse.Object` reference, but the unfiltered JSON copy was sent to clients. The fix in versions 9.6.0-alpha.35 and 8.6.50 ensures that the JSON copy is assigned back to the response object before filtering, so the filter operates on the actual data sent to clients. As a workaround, remove all `Parse.Cloud.afterLiveQueryEvent` trigger registrations. Without an `afterEvent` trigger, the reference detachment does not occur and protected fields are correctly filtered.

📍 영향받는 시스템

Parse Server 9.6.0-alpha.35 및 8.6.50 미만 버전

⚔️ 공격 벡터

해당 클래스에 구독 권한이 있는 사용자가 LiveQuery 이벤트를 통해 타인의 보호된 필드 및 인증 데이터를 탈취

🛡️ 대응 방법

Parse Server를 9.6.0-alpha.35 또는 8.6.50 이상 버전으로 업데이트하거나, 임시 조치로 Parse.Cloud.afterLiveQueryEvent 트리거 등록을 제거

🔧 검증 코드

출력된 결과에 취약한 버전 범위가 포함되어 있다면 해당 취약점에 노출된 상태입니다.

Shell / Script
npm list parse-server | grep -E 'parse-server@([0-8]\.[0-6]\.[0-5][0-9]|9\.6\.0-alpha\.3[0-4])'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

💻 영향받는 소프트웨어

Node.js