🇰🇷 한글 설명
Parse Server의 특정 버전에서 보호된 필드에 대한 검증 로직이 최상위 쿼리 키만 확인하는 취약점이 발견되었습니다. 공격자가 논리 연산자 내부에 보호된 필드 제약 조건을 포함시켜 검증을 우회할 수 있으며, 이를 통해 인증된 사용자가 보호된 필드의 값을 추출할 수 있습니다.
💡 쉬운 설명
데이터베이스의 중요한 정보가 숨겨져 있어야 하는데, 질문 방식을 살짝 꼬아서 물어보면 보안 검사를 통과해버리는 문제입니다. 이를 통해 권한이 없는 사용자가 비밀스러운 정보를 몰래 읽어갈 수 있습니다.
🇺🇸 원문 (English)
Parse Server is an open source backend that can be deployed to any infrastructure that can run Node.js. Prior to 9.5.2-alpha.6 and 8.6.19, the validation for protected fields only checks top-level query keys. By wrapping a query constraint on a protected field inside a logical operator, the check is bypassed entirely. This allows any authenticated user to query on protected fields to extract field values. All Parse Server deployments have default protected fields and are vulnerable. This vulnerability is fixed in 9.5.2-alpha.6 and 8.6.19.
📍 영향받는 시스템
Parse Server 9.5.2-alpha.6 미만 및 8.6.19 미만 버전
⚔️ 공격 벡터
논리 연산자(Logical Operator)를 사용하여 보호된 필드에 대한 쿼리 검증을 우회하는 방식
🛡️ 대응 방법
Parse Server를 9.5.2-alpha.6 또는 8.6.19 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 현재 설치된 Parse Server 버전이 취약 버전 범위에 포함되는지 확인합니다.
npm list parse-server | grep -E 'parse-server@([0-8]\.[0-6]\.[0-9]|9\.5\.2-alpha\.6)'