🇰🇷 한글 설명
Parse Server의 특정 버전에서 점 표기법(dot-notation) 필드 이름과 정렬(sort) 쿼리 파라미터를 조합할 때 PostgreSQL 데이터베이스에 SQL 인젝션이 발생할 수 있습니다. 이 취약점은 점 표기법을 사용하는 distinct 및 where 쿼리 파라미터에도 영향을 미칠 수 있으며, PostgreSQL을 사용하는 환경에서만 발생합니다.
💡 쉬운 설명
데이터베이스의 정보를 조회할 때 사용하는 특수 기호를 악용하여 해커가 데이터베이스를 마음대로 조작할 수 있는 보안 약점입니다. 점(.)을 이용한 복잡한 데이터 요청 방식에서 필터링이 제대로 되지 않아 발생합니다.
🇺🇸 원문 (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.2 and 8.6.28, an attacker can use a dot-notation field name in combination with the sort query parameter to inject SQL into the PostgreSQL database through an improper escaping of sub-field values in dot-notation queries. The vulnerability may also affect queries that use dot-notation field names with the distinct and where query parameters. This vulnerability only affects deployments using a PostgreSQL database. This vulnerability is fixed in 9.6.0-alpha.2 and 8.6.28.
📍 영향받는 시스템
Parse Server 9.6.0-alpha.2 및 8.6.28 미만 버전 (PostgreSQL 사용 환경)
⚔️ 공격 벡터
점 표기법 필드 이름과 sort, distinct, where 쿼리 파라미터를 조합한 SQL 인젝션 공격
🛡️ 대응 방법
Parse Server를 9.6.0-alpha.2 또는 8.6.28 이상의 버전으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 취약한 버전 범위가 나타나면 업데이트가 필요한 상태이며, 아무것도 출력되지 않으면 안전할 가능성이 높습니다.
npm list parse-server | grep -E 'parse-server@([0-8]\.[0-6]\.[0-9]|9\.6\.0-alpha\.2)'