🇰🇷 한글 설명
Parse Server 8.6.107 미만 및 9.0.0~9.10.5-alpha.8 미만 버전에서는 beforeSave 트리거에 의해 되돌려진(revert) 필드의 저장된 값이 객체 업데이트 응답에 포함된다. 이로 인해 해당 객체나 필드에 읽기 권한이 없는 클라이언트도 보호된 값을 조회할 수 있다. 인증된 사용자가 revert() 또는 constant: true 검증기를 사용하는 객체를 업데이트하면, protectedFieldsTriggerExempt가 활성화된 경우 자신의 계정 MFA authData 원본 값까지 읽을 수 있다.
💡 쉬운 설명
Parse Server에서 일부 데이터를 수정하면 원래 숨겨져 있어야 할 값이 응답으로 노출될 수 있는 문제입니다. 로그인한 사용자가 이를 악용하면 본인 계정의 다중 인증 정보 등 보호된 값을 볼 수 있습니다.
🇺🇸 원문 (English)
Parse Server before 8.6.107 and 9.0.0 before 9.10.5-alpha.8 returns the stored value of a field reverted by a beforeSave trigger in object update responses, even to clients without read access to that object or field. An authenticated client able to update an object whose beforeSave trigger reverts a field, via revert() or a constant: true validator, can read protected values, including its own account's raw MFA authData when protectedFieldsTriggerExempt is enabled.
📍 영향받는 시스템
Parse Server 8.6.107 미만, 9.0.0 이상 9.10.5-alpha.8 미만 버전
⚔️ 공격 벡터
인증된 사용자가 beforeSave 트리거가 필드를 되돌리는 객체를 업데이트하여 응답에 포함된 보호 필드 값을 조회
🛡️ 대응 방법
Parse Server를 8.6.107 이상 또는 9.10.5-alpha.8 이상으로 업그레이드하고, 필요 시 protectedFieldsTriggerExempt 설정을 비활성화
🔧 검증 코드
출력된 버전이 8.6.107 이상이거나 9.10.5-alpha.8 이상이면 패치된 것이며, 그보다 낮은 버전이면 취약한 상태입니다.
npm ls parse-server 2>/dev/null | grep parse-server