🇰🇷 한글 설명
Parse Server의 fileUpload.fileExtensions 기본 설정에서 차단되지 않는 특정 확장자(.svgz, .xht, .xml 등)를 통해 악성 코드가 포함된 파일을 업로드할 수 있는 취약점입니다. 공격자가 업로드한 파일을 사용자가 열람할 경우, 브라우저에서 악성 스크립트가 실행되어 세션 토큰 탈취나 사용자 권한 도용이 발생할 수 있는 저장형 XSS 취약점입니다.
💡 쉬운 설명
해커가 이미지나 문서 파일로 위장한 악성 코드를 서버에 올린 뒤, 다른 사용자가 그 파일을 보게 만들어 개인 정보를 훔치는 공격입니다. 보안 설정이 미흡한 파일 형식을 이용해 웹사이트의 권한을 가로챌 수 있습니다.
🇺🇸 원문 (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.4 and 8.6.30, an attacker can upload a file with a file extension or content type that is not blocked by the default configuration of the Parse Server fileUpload.fileExtensions option. The file can contain malicious code, for example JavaScript in an SVG or XHTML file. When the file is accessed via its URL, the browser renders the file and executes the malicious code in the context of the Parse Server domain. This is a stored Cross-Site Scripting (XSS) vulnerability that can be exploited to steal session tokens, redirect users, or perform actions on behalf of other users. Affected file extensions and content types include .svgz, .xht, .xml, .xsl, .xslt, and content types application/xhtml+xml and application/xslt+xml for extensionless uploads. Uploading of .html, .htm, .shtml, .xhtml, and .svg files was already blocked. This vulnerability is fixed in 9.6.0-alpha.4 and 8.6.30.
📍 영향받는 시스템
Parse Server 9.6.0-alpha.4 및 8.6.30 미만 버전
⚔️ 공격 벡터
차단되지 않은 확장자(.svgz, .xht, .xml, .xsl, .xslt 등)를 가진 악성 파일을 업로드하여 사용자의 브라우저에서 스크립트 실행 유도
🛡️ 대응 방법
Parse Server를 9.6.0-alpha.4 또는 8.6.30 이상의 최신 버전으로 업데이트
🔧 검증 코드
출력된 버전이 9.6.0-alpha.4 또는 8.6.30보다 낮으면 취약한 상태입니다.
npm list parse-server | grep -E 'parse-server@([0-8]\.[0-6]\.[0-9]+|9\.6\.0-alpha\.4)'