🇰🇷 한글 설명
Parse Server의 LiveQuery 기능에서 여러 클라이언트가 동일한 클래스를 구독할 때, 공유된 가변 객체를 사용하여 이벤트 핸들러가 병렬로 처리되는 취약점입니다. 민감한 데이터 필터가 공유 객체를 직접 수정함으로써, 특정 클라이언트의 필터링 결과가 다른 클라이언트에게 영향을 주어 인증 데이터가 유출되거나 데이터가 불완전하게 전달될 수 있습니다.
💡 쉬운 설명
여러 사용자가 동시에 데이터를 요청할 때, 시스템이 데이터를 처리하는 과정에서 실수로 다른 사람의 정보를 섞어버리는 문제입니다. 이로 인해 남에게 보여주면 안 되는 비밀번호나 개인정보가 다른 사용자에게 노출될 위험이 있습니다.
🇺🇸 원문 (English)
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to versions 8.6.65 and 9.7.0-alpha.9, when multiple clients subscribe to the same class via LiveQuery, the event handlers process each subscriber concurrently using shared mutable objects. The sensitive data filter modifies these shared objects in-place, so when one subscriber's filter removes a protected field, subsequent subscribers may receive the already-filtered object. This can cause protected fields and authentication data to leak to clients that should not see them, or cause clients that should see the data to receive an incomplete object. Additionally, when an afterEvent Cloud Code trigger is registered, one subscriber's trigger modifications can leak to other subscribers through the same shared mutable state. Any Parse Server deployment using LiveQuery with protected fields or afterEvent triggers is affected when multiple clients subscribe to the same class. This issue has been patched in versions 8.6.65 and 9.7.0-alpha.9.
📍 영향받는 시스템
Parse Server 8.6.65 미만 및 9.7.0-alpha.9 미만 버전
⚔️ 공격 벡터
LiveQuery를 통해 동일한 클래스에 다수의 클라이언트가 구독하여 공유 객체의 상태를 조작하는 방식
🛡️ 대응 방법
Parse Server를 8.6.65 또는 9.7.0-alpha.9 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 8.6.65 또는 9.7.0-alpha.9보다 낮은지 확인하십시오.
npm list parse-server | grep -E 'parse-server@'