🇰🇷 한글 설명
Parse Server의 LiveQuery 기능에서 보호된 필드를 대상으로 watch 파라미터를 사용할 때 발생하는 취약점입니다. 공격자는 업데이트 이벤트의 발생 여부를 통해 보호된 필드의 값 변화를 추측할 수 있는 바이너리 오라클 공격이 가능합니다. 이 문제는 8.6.54 및 9.6.0-alpha.43 버전에서 패치되었습니다.
💡 쉬운 설명
데이터베이스의 중요한 정보가 바뀌었는지 몰래 지켜보고 알아낼 수 있는 보안 구멍입니다. 값이 바뀌었는지 안 바뀌었는지만 확인해도 비밀 정보를 유추할 수 있습니다.
🇺🇸 원문 (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.54 and 9.6.0-alpha.43, an attacker can subscribe to LiveQuery with a watch parameter targeting a protected field. Although the protected field value is properly stripped from event payloads, the presence or absence of update events reveals whether the protected field changed, creating a binary oracle. For boolean protected fields, the timing of change events is equivalent to knowing the field value. This issue has been patched in versions 8.6.54 and 9.6.0-alpha.43.
📍 영향받는 시스템
Parse Server versions prior to 8.6.54 and 9.6.0-alpha.43
⚔️ 공격 벡터
LiveQuery의 watch 파라미터를 이용한 보호된 필드의 업데이트 이벤트 유무 확인 (Binary Oracle)
🛡️ 대응 방법
Parse Server를 8.6.54 또는 9.6.0-alpha.43 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 패치된 버전(8.6.54 이상 또는 9.6.0-alpha.43 이상)이 표시되면 안전합니다.
npm list parse-server | grep -E 'parse-server@([8]\.[0-9]\.[0-9]+|9\.6\.0-alpha\.4[3-9])'